总结
- java.io.File类:文件和目录路径名的抽象表示形式,与平台无关
- File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。
- File对象可以作为参数传递给流的构造函数
- 在UNIX中,此字段为‘/’,在Windows中,为‘’
- File 类代表与平台无关的文件和目录。
java.io.File类
public class Test {
public static void main(String[] args) {
File f = new File("E:\Learn\4.语言\1.Java\day12\test.txt");//这时f就是test.txt文件
File f1 = new File("E:\Learn\4.语言\1.Java\day12");//这时f1是个文件夹
System.out.println(f.getName());//文件名
System.out.println(f1.getName());//文件夹名
//相对路径
File f2 = new File("javademo/src/com/day08/Test.java");
System.out.println(f2.getPath());
System.out.println(f2.getAbsolutePath());
System.out.println(f2.getAbsoluteFile());//返回一个当前的文件的绝对路径构建的file对象
System.out.println(f2.getParent());//返回当前文件或者文件夹的父级路径
System.out.println(f2.exists());//判断文件或者文件夹是否存在
System.out.println(f.canRead());//判断文件是否可读
System.out.println(f.canWrite());//判断文件是否可写
System.out.println(f.isFile());//判断file对象是否是文件
System.out.println(f.isDirectory());//判断当前file对象是不是文件夹
System.out.println(f.lastModified());//获取文件的最后修改时间,返回的是一个毫秒数
System.out.println(f.length());//返回文件长度,单位字节数
}
}
文件操作
File f3 = new File("E:\Learn\4.语言\1.Java\2019Java求知讲堂哔哩哔哩课件源代码\day12\test11.txt");
System.out.println(f3.exists());
if(!f3.exists()) {
try {
//创建文件
f3.createNewFile();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
//删除文件
f3.delete();
目录操作
//目录操作
File f4 = new File("E:\Learn\4.语言\1.Java\2019Java求知讲堂哔哩哔哩课件源代码\day12\cc");
f4.mkdir();//创建单级目录,如果用这种方法创建多级目录,需要一级一级的调用mkdir()
File f5 = new File("E:\Learn\4.语言\1.Java\2019Java求知讲堂哔哩哔哩课件源代码\day12\dd\a\b\c");
f5.mkdirs();//创建多级目录
//list
File f6 = new File("E:\Learn\4.语言\1.Java\2019Java求知讲堂哔哩哔哩课件源代码\day12");
String[] fl = f6.list();//返回的是当前文件夹的子集的名称,包括目录和文件
for(String ff : fl) {
System.out.println(ff);
}
//listFiles
File[] fll = f6.listFiles();//返回的是当前文件夹的子集的file对象,包括目录和文件
for(File ff : fll) {
System.out.println(ff);
}
递归遍历文件
/**
* 递归遍历文件
* @param file
*/
public void test(File file) {
if(file.isFile()) {
System.out.println(file.getAbsolutePath()+" 是文件");
}else {
System.out.println(file.getAbsolutePath()+" 是文件夹");
//如果是文件夹,那么下面可能有文件和文件夹
File[] fs = file.listFiles();
if(fs!=null && fs.length>0) {
for(File ff : fs) {
test(ff);
}
}
}
}
//调用递归遍历文件
new Test().test(f6);