Java IO API 中的 File 类可以让你访问底层文件系统,通过 File 类,你可以做到以下几点:
- 检测文件是否存在
- 读取文件长度
- 重命名或移动文件
- 删除文件
- 检测某个路径是文件还是目录
- 读取目录的文件列表
请注意:File 只能访问文件以及文件系统的元数据。如果你想要读写某个文件内容,需要使用 FileInputStream、FileOutputStream 或者 RandomAccessFile。如果你正在使用 Java NIO,并且想使用完整的 NIO 解决方案,你会使用到 java.nio.FileChannel。
实例化一个 java.io.File 对象
在使用 File 之前,必须拥有一个 File 对象:
File file = new File("c:\\data\\text.txt");
检测文件是否存在
当你获得一个 File 对象之后,可以检测相应的文件是否存在。当文件不存在的时候,构造函数并不会执行失败。
File file = new File("c:\\data\\text.txt");
file.exists();
文件长度
通过调用 length() 可以获得文件的字节长度。
File file = new File("c:\\data\\text.txt");
file.length();
重命名或移动文件
通过调用 File 类中的 renameTo() 方法可以重命名(或者移动)文件。
File file = new File("c:\\data\\text.txt");
file.renameTo(new File("c:\\data\\newFile.txt"));
删除文件
通过调用 delete() 方法可以删除文件。
File File = new File("c:\\data\\text.txt");
boolean success = file.delete();
检测某个路径是文件还是目录
File 既可以指向一个文件,也可以指向一个目录。可以通过调用 isDirectory() 方法,可以判断当前 File 对象指向的是文件还是目录。
File File = new File("c:\\data\\text.txt");
System.out.println(file.isDirectory());
System.out.println(file.isFile());
读取目录中的文件列表
你可以通过调用 list() 或者 listFile() 方法获取一个目录中的所有文件列表。list() 方法返回当前 File 对象指向的目录中所有文件与子目录的字符串名称。listFile() 方法返回当前 File 对象指向的目录中所有于子目录相关联的 File 对象。
File file = new File("c:\\data");
String[] fileNames = file.list();
File [] files= file.listFiles();