Java--File I/O
2017-06-13 本文已影响37人
年少懵懂丶流年梦
java.io.File类用于表示文件(目录)。用来将文件或者文件夹封装成对象。
File类只用于表示文件(目录)的信息(名称、大小等),不能用于文件内容的访问。
File类是IO包中唯一代表磁盘文件本身的对象。File类定义了一些与平台无关的方法来操纵文件,通过调用File类提供的各种方法,能够完成创建、删除文件,重命名文件,判断文件的读写权限及文件是否存在,设置和查询文件的最近修改时间等操作。
1. File类
1、创建File对象
构造方法:
File(File parent, String child) // 根据 parent 抽象路径名和 child 路径名字符串创建一个新File实例。
File(String pathname) // 通过将给定路径名字符串转换为抽象路径名来创建一个新File实例。
File(String parent, String child) // 根据 parent 路径名字符串和 child 路径名字符串创建一个新File实例。
File(URI uri) // 通过将给定的file:URI 转换为一个抽象路径名来创建一个新的File实例。
2、操作File的方法
1、访问文件名相关的方法:
String getName() // 取得文件名
String getPath() // 取得文件路径
File getAbsoluteFile() // 获得该File对象的绝对路径
String getAbsolutePath() // 获得该File对象的绝对路径名
String getParent() // 获得父级目录名
boolean renameTo() // 重命名
2、文件检测相关方法:
boolean exists() // 判断文件是否存在
boolean canExecute() // 判断文件是否可执行
boolean canWrite() // 判断是否可写
boolean canRead() // 判断是否可读
boolean isDirectory() // 判断是否是目录
boolean isFile() // 判断是否是文件
boolean isHidden() // 判断是否是隐藏文件
boolean isAbsolute() // 判断是否是绝对路径名
3、获取常规文件信息:
long lastModified() // 返回文件最后修改时间
long length() // 返回的文件长度
4、文件操作相关方法:
boolean createNewFile() // 创建新文件,创建成功返回true,否则返回false
boolean delete() // 删除文件
static File createTempFile(String prefix, String suffix) // 在默认临时文件目录中创建一个空文件,
使用给定前缀和后缀生成其名称。suffix 参数可以为 null,这时将使用默认的后缀“.tmp”
static File createTempFile(String prefix, String suffix, File directory) // 在指定目录 directory 中创建一个新的空文件,
使用给定的前缀和后缀生成其名称。
void deleteOnExit() // 当Java虚拟机终止时删除File对象所对应的文件和目录
5、目录操作相关的方法:
boolean mkdir() // 创建一级目录
boolean mkdirs() // 创建多级目录(包括所有必需但不存在的父目录)
String[] list() // 列出当前下所有文件和路径,返回String数组
File[] listFiles() // 列出当前下所有文件和路径,返回File数组
static File[] listRoots() // 列出磁盘所有的根路径
在Windows中使用的路径分割符:
- \\
- /
3. 文件过滤器
在File类中:
String[] list(FilemaneFilter filter) // 返回一个字符串数组,这些字符串
指定此抽象路径名表示的目录中满足指定过滤器的文件和目录
File[] listFiles(FileFilter filter)
File[] listFiles(FilemaneFilter filter)
FilemaneFilter
接口中只有一个抽象方法:
boolean accept(File dir, String name)
实现accept()
方法,就是指定自己的规则,指定哪些文件应该由list()
列出。
public class FilenameFilterDemo {
public static void main(String[] args) {
File file = new File("D:/eclipse/workspace/ThreadDemo/");
// 列出路径下的所有*.java文件以及文件夹
String[] nameList = file.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
if (name.endsWith(".java") || new File(name).isDirectory()) {
return true;
}
return false;
}
});
for (String name : nameList) {
System.out.println(name);
}
}
}