15.Java IO: File

来源:互联网 发布:bpm测试软件手机 编辑:程序博客网 时间:2024/05/22 03:50

本文是在Java IO: FileInputStream翻译而来。

Java IO API的File类给你进入底层文件系统的方法。用File类你可以做:
 1.检查一个文件或目录是否存在
 2.如果一个目录不存在,创建这个目录
 3.读取文件的长度
 4.重命名或移动文件
 5.删除文件
 6.检查路径是文件还是目录
 7.从目录中读取文件的列表
记住: File只给你进入文件和文件系统。如果你需要读取或写入文件的内容,你应该使用 FileInputStream, FileOutputStream或RandomAccessFile中的任意一个。

初始化java.io.File

在你可以用文件系统或文件类做工作前,你必须获得File实例。像这样:

File file = new File("c:\\data\\input-file.txt");

简单对吗?File类有一些其他的构造方法,你可以用它们以不同的方式初始化File实例。

检查文件是否存在

一旦你初始化了文件对象,如果相关的文件确实已经存在你就可以检查。如果文件不存在,File类构造器不会创建失败。你可能现在就想创建,对吧?
调用exists()方法,检查文件是否存在。例如:

File file = new File("c:\\data\\input-file.txt");boolean fileExists = file.exists();

如果一个目录不存在,创建这个目录

如果文件不存在,你可以用File类创建这些文件目录。File类包含了mkdir()和mkdirs()方法来创建目录。

如果目录不存在,mkdir()方法创建一个单独的文件目录。例如:

File file = new File("c:\\users\\jakobjenkov\\newdir");boolean dirCreated = file.mkdir();

假设目录 c:\users\jakobjenkov已经存在,上述代码将创建一个jakobjenkonv的子文件夹newdir。如果文件目录创建成功,mkdir()将返回true,如果失败将返回false.

File对象呈现的不存在的路径,mkdirs()方法将创建这些目录。例如:

File file = new File("c:\\users\\jakobjenkov\\newdir");boolean dirCreated = file.mkdirs();

假设驱动盘C存在,在路径c:\users\jakobjenkov\newdir,例子将创建所有的目录。如果文件目录创建成功,mkdirs()将返回true,如果失败将返回false.

文件长度

调用length()方法可以以字节数读取文件的长度。例如:

File file = new File("c:\\data\\input-file.txt");long length = file.length();

重命名或移动文件

在File类中,调用renameTo()方法即可重命名一个文件。例如:

File file = new File("c:\\data\\input-file.txt");boolean success = file.renameTo(new File("c:\\data\\new-file.txt"));

像之前简明地提到的一样,renameTo()方法也可以用来移动文件到不同的目录中。新的文件名传入到renameTo()方法,这个文件已经存在目录里,不需要寸在同一个目录文件中。

renameTo()方法返回布尔值(true或false),表明重命名是否成功。重命名或移动文件可能由于各种原因失败,像文件一直打开,错误的文件权限等等。

删除文件

调用delete()方法删除文件,例如:

File file = new File("c:\\data\\input-file.txt");boolean success = file.delete();

delete()方法返回布尔值(true或false),表明删除是否成功。删除文件可能由于各种原因失败,像文件一直打开,错误的文件权限等等。

检查路径是文件还是目录

文件对象既可以指向一个文件又可指向目录。
你可以调用isDirectory()方法检查一个文件对象是否指向一个文件或目录。这个方法返回true,如果File指向目录。如果File指向文件,将返回false.例如:

File file = new File("c:\\data");boolean isDirectory = file.isDirectory();

从目录中读取文件的列表

调用list()方法或listFiles()方法可以获取目录下的文件列表。list()方法返回一个String数组,这个数组是File对象指向的目录中的文件或目录的名字。listFiles()返回一个File对象数组,代表File指向的目录里的文件或目录。例如

File file = new File("c:\\data");String[] fileNames = file.list();File[]   files = file.listFiles();
0 0