1 java.io.File类
1.1 构造方法
-
参数为路径名字符串类型:public File(String pathname)
举例代码
File file = new File("C:/XXX");
-
传入父路径名和子路径名:public File(String parentPath , String childPath)
举例代码
public File("C:/aa", "aa.txt");
-
传入父级对象和子路径名:public File(File parentFile , Stirng childPath )
举例代码
File parentDir = new File("d:\\aaa"); String child = "bbb.txt"; File file4 = new File(parentDir, child);
1.2 常用方法
-
public String getName() :返回由此File表示的文件或目录的名称
-
public long length()
:返回由此File表示的文件的长度 -
public String getPath() :将此File转换为路径名字符串。
-
public long lastModified() :返回File对象对应的文件或目录的最后修改时间(毫秒值)
-
public boolean exists() :此File表示的文件或目录是否实际存在
-
public boolean isDirectory() :此File表示的是否为目录
-
public boolean isFile() :此File表示的是否为文件
-
public boolean canRead() :判断File对象对应的文件或目录是否可读
-
public boolean canWrite() :判断File对象对应的文件或目录是否可写
-
public boolean isHidden() :判断File对象对应的文件或目录是否是否隐藏
-
public boolean createNewFile() :当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。
示例代码
File f = new File("d:/aaa.txt"); f.createNewFile();
-
public boolean delete() :删除由此File表示的文件或目录。 只能删除空目录。
示例代码
f.delete();
-
public boolean mkdir() :创建由此File表示的目录。
-
public boolean mkdirs() :创建由此File表示的目录,包括任何必需但不存在的父目录。
1.3 相对路径与绝对路径
-
绝对路径:从盘符开始的路径,这是一个完整的路径。
实例代码
File file = new File("d:\\java\\HelloIO.java");
-
相对路径:相对于项目目录的路径,这是一个便捷的路径,开发中经常使用。
示例代码
File file = new File("./HelloIO.java"); // "./"表示当前项目下
1.4 目录的遍历
1.4.1 常用方法
- public String[] list() :返回一个String数组,表示该File目录中的所有子文件或目录。
- public File[] listFiles() :返回一个File数组,表示该File目录中的所有的子文件或目录
- public File[] listFiles(FileFilter filter) :返回所有满足指定过滤器的文件和目录
- public File[] listFiles(FilenameFilter filter) :返回所有满足指定过滤器的文件和目录
1.4.2 方法的运用示例
例如使用递归实现打印指定目录下的文件名(目录不止一级)
示例代码
public class Test {
public static void main(String[] args) {
/*
* 遍历指明目录下的所有[不止一级]的文件,输出所有的文件名
*/
File file = new File("c:/bbb"); //bbb文件目录下存在多层子目录和文件
show(file);
}
public static void show(File file){
File[] listFiles = file.listFiles(); //得到File目录中的所有的子文件或目录,返回File类型
for (File file2 : listFiles) { //遍历
if(file2.isFile()){ //判断当前File是否是文件
System.out.println(file2.getName()); //打印文件名
}
else if(file2.isDirectory()){ //当前文件类型为目录类型
System.out.println(file2.getName()); //得到目录名
show(file2); //递归打印
}
}
}
}