您的位置:首页 > 编程语言 > Java开发

Java中的File类

2016-03-04 10:28 627 查看
File类在整个java.io包中是一个独立的类,此类的主要功能是完成与平台无关文件操作,例如:创建文件、删除文件等。在File类中提供了以下的构造方法:public File(String pathname)在使用的时候需要依靠其制定一个文件的具体路径。

1、创建文件

例如,现在要在D盘上创建一个demo.txt的文件。创建的方法:

package org.mole.io;

import java.io.File;

import java.io.IOException;

public class CreateFileDemo1 {

public static void main(String[] args) {

File file = new File("d:\\demo.txt");//找到File类的实例

try {

file.createNewFile();

} catch (IOException e) {

e.printStackTrace();

}

}

}

程序本身只是作为一个文件的创建出现。而如果要使用具体的内容的输出,则必须依靠IO操作流。

2、删除文件

如果想要删除文件则使用:public boolean delete()

package org.mole.io;

import java.io.File;

public class DeleteFileDemo {

public static void main(String[] args) {

File file = new File("d:\\demo.txt");//找到File类的实例

file.delete();//删除文件

}

}

以上的两个操作确实完成了文件的创建及删除,可是代码却同样的存在问题。在各个操作系统中,文件的分隔符是不一样的:windows:\linux:/。Java本身属于跨平台的语言,那么应该可以适应各个不同的平台要求,那么为了解决可以自动适应不同系统的分隔符要求,所以在File类中提供了以下几个常量:

路径分隔符:public static final String pathSeparator,“,”

分隔符:public static final String separator,“/”或“\”

所以,对于实际的开发来讲,必须使用这样的常量进行声明。正经的java常量字母应该全部大写,但是此处并没有大写。这就是java历史发展的原因。所以,以后的程序豆浆采用File.separator进行分隔。

3、判断文件是否存在

提供以下的方法,public boolean exists()

package org.mole.io;

import java.io.File;

public class ExistsFileDemo {

public static void main(String[] args){

File file = new File("d:"+File.separator+"demo.txt");//找到File类的实例

if(file.exists()){

System.out.println("文件存在");

}else{

System.out.println("文件不存在");

}

}

}

那么,此时就可以利用此种特点完成以下的一个要求:要求编写一个程序,此程序的主要功能如下,如果文件存在,则删除,如果文件不存在,则创建一个新的文件。

package org.mole.io;

import java.io.File;

import java.io.IOException;

public class CreateDeleteFileDemo2 {

public static void main(String[] args) {

File file = new File("d:"+File.separator+"demo.txt");//找到File类的实例

if(file.exists()){

file.delete();

}else{

try {

file.createNewFile();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

4、判断路径是文件还是文件夹

在程序中可以使用如下的方法进行判断:

判断是否是文件夹:public boolean isDirectory()

判断是否是文件:public boolean isFile()

package org.mole.io;

import java.io.File;

public class IsDemo {

public static void main(String[] args) {

File file1 = new File("d:"+File.separator+"demo.txt");

File file2 = new File("d:"+File.separator+"docs");

System.out.println(file1.isFile());//判断是否是文件

System.out.println(file2.isDirectory());//判断是否是目录

}

}

5、列出目录中的内容

在File类中提供了以下的两个方法进行目录的列表操作:

public String[] list()

public File[] listFiles()

list()的用法如下:

package org.mole.io;

import java.io.File;

public class ListDemo {

public static void main(String[] args) {

File file = new File("d:"+File.separator+"vm");//找到File类的实例

String path[] = file.list();//列出全部的内容

for(int i=0;i<path.length;i++){

System.out.println(path[i]);

}

}

}

此处列出来的只是一个目录下的文件或文件夹名称而已,执行结果如下:



listFiles()可以列出目录下每个文件的路径,代码和结果如下:

package org.mole.io;

import java.io.File;

public class ListDemo2 {

public static void main(String[] args) {

File file = new File("d:"+File.separator+"vm");//找到File类的实例

File path[] = file.listFiles();//列出全部的子文件或文件夹

for(int i=0;i<path.length;i++){

System.out.println(path[i]);

}

}

}



这两个都可以列出目录下的内容,更加清楚的列出目录下内容代码如下:

package org.mole.io;

import java.io.File;

public class ListDemo3 {

public static void main(String[] args) {

File file = new File("d:"+File.separator+"vm");//找到File类的实例

File path[] = file.listFiles();//列出全部的子文件或文件夹

for(int i=0;i<path.length;i++){

System.out.println(path[i].getParent()+"-->");

System.out.println(path[i].getPath());

}

}

}

执行结果如下:



6、创建目录

用mkdir()方法

package org.mole.io;

import java.io.File;

public class MkdirDemo {

public static void main(String[] args) {

File file = new File("d:"+File.separator+"demo.txt");

file.mkdir();

}

}

以上代码创建了一个文件名为demo.txt的文件夹,也可以在一个文件夹下创建文件:

package org.mole.io;

import java.io.File;

import java.io.IOException;

public class MkdirDemo2 {

public static void main(String[] args) {

File file = new File("d:"+File.separator+"demo"+File.separator+"test.txt");

file.getParentFile().mkdir();//创建d:\demo文件夹

try {

file.createNewFile();//创建文件

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

本文内容参考了魔乐科技的教学视频
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: