1 io主要内容
2.File类
import java.io.File;
import java.io.IOException;
public class Tes {
public static void main(String[] args) {
File f =new File("D:/Test/abc/tt.txt");//这个时候f就是tt.txt
File f1=new File("D:/Text","abc/tt.txt");//这时f1也是tt.txt不过大都使用第一种写法
File f2=new File("D:Text"+ File.separator+"abc/tt.txt");//也可以用File.separator作分隔符
File f3=new File("D:/Test/abc");
File f5=new File("src/b/Tes.java");//相对路径来创建file对象
System.out.println(f.getName());//获取文件名,获取当前文件夹或文件名名称
System.out.println(f3.getName());
System.out.println(f5.getPath());//获取当前路径,就是new File时候写的路径
System.out.println(f5.getAbsolutePath());//获取当前文件的绝对路径
System.out.println(f5);
System.out.println(f5.getAbsoluteFile());//返回一个用当前文件的绝对路径构建的file对象
System.out.println(f5.getParent());//返回当前文件或文件夹的父级路径
f.renameTo(new File("D:/Test/abc/tt1.txt"));//给文件或文件夹重命名
File f6=new File("D:/Test/abc/tt1.txt");//判断文件或者文件夹是否存在存在返回true不存在返回false
System.out.println(f6.exists());
File f7=new File("D:/Test/abc/tt1.txt");
System.out.println(f7.canWrite());//判断文件是否可读或可写
System.out.println(f7.canRead());
System.out.println(f7.isFile());//判断当前的file对象是不是文件
System.out.println(f7.isDirectory());//判断当前对象是不是文件夹
System.out.println(f7.lastModified());//获取文件的最后修改时间,返回的是一个毫秒数
System.out.println(f7.length());//返回文件的长度单位是字节
File f8=new File("D:/Test/abc/tt2.txt");
System.out.println(f8.exists());
// if(!f8.exists()){
// try {
// f8.createNewFile();
// }catch(IOException e){
// e.printStackTrace();
// }
// }
f8.delete();//删除文件或文件夹
File f9=new File("D:/Test/abc/cc");
f9.mkdir();//创建目录(文件夹)单级
File f10=new File("D:/Test/abc/a/b/c");
f10.mkdirs();//创建多级目录
//创建新的文件
File f12=new File("D:\\Test\\abc\\tt2.txt");
try {
f12.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
File f11=new File("D:/Test");
String fl[]=f11.list();//返回的是当前文件夹的子集的名称,包括目录和文件
for(String s:fl){
System.out.println(s);
}
File fs[]=f11.listFiles();//返回当前文件夹的子集的file对象,包括目录和文件
for(File ff:fs){
System.out.println(ff);
}
}
}
运行:
tt.txt
abc
src\b\Tes.java
E:\IDEAproject\src\b\Tes.java
src\b\Tes.java
E:\IDEAproject\src\b\Tes.java
src\b
true
true
true
true
false
1584584814367
5
false
abc
D:\Test\abc
2.5File类递归遍历文件
import java.io.File;
import java.io.IOException;
public class Tes {
public static void main(String[] args) {
//遍历D盘test下的文件夹
// File f=new File("D:");
// File fs[]=f.listFiles();
// for(File ff:fs){
// System.out.println(ff);
File f=new File("D:/Test");
new Tes().test(f);
}
//遍历D盘下的test文件,把test文件夹下所有目录与文件全部遍历出来,不论层级有多深全部遍历
//这个需要使用递归的方式来实现
//使用递归遍历文件
public void test(File file){
if(file.isFile()){
System.out.println(file.getAbsoluteFile()+"是文件");
}else{
System.out.println(file.getAbsoluteFile()+"是文件夹");
//如果是文件夹,这个文件夹里就可能有子文件夹或文件
File fs[]=file.listFiles();//获取当前文件夹下的子文件夹或文件夹的file对象
if(fs!=null&&fs.length>0) {
for (File ff : fs) {
// if(ff.isFile()){
// System.out.println(ff.getAbsoluteFile()+"是文件");
// }else{
// System.out.println(ff.getAbsoluteFile()+"是文件夹");
// File fs1[]=file.listFiles();
// if(fs1!=null&&fs1.length>0){
// for(File ff1:fs1);
// }
test(ff);//递归
}
}
}
}
}
运行结果:
D:\Test是文件夹
D:\Test\abc是文件夹
D:\Test\abc\a是文件夹
D:\Test\abc\a\b是文件夹
D:\Test\abc\a\b\c是文件夹
D:\Test\abc\cc是文件夹
D:\Test\abc\tt1.txt是文件