1. 基本概念
- File类的对象,代表一个文件夹或文件
- File声明在java.io包下
- File类只能操作文件名,不能修改文件内容
- 路径分隔符
4.1 windows和DOS系统默认使用“\"表示
4.2 UNIX和URL使用“/”表示
2. File类的常用函数
@Test
public void test2() {
File file1 = new File("hello.txt");
File file2 = new File("D:\\Data\\JavaProject\\Echo01\\Echo01.iml");
System.out.println(file1.getAbsoluteFile());
System.out.println(file1.getPath());
System.out.println(file1.getName());
System.out.println(file1.getParent());
System.out.println(file1.length());
System.out.println(new Date(file1.lastModified()));
System.out.println();
File file3 = new File("D:\\Data\\JavaProject\\Echo01\\");
String[] filelist = file3.list();
for (String s : filelist) {
System.out.println(s);
}
File[] fileslist = file3.listFiles();
for (File file : fileslist) {
System.out.println(file);
}
System.out.println();
File file4 = new File("D:\\Data\\JavaProject\\Echo01\\hello.txt");
File file5 = new File("D:\\Data\\JavaProject\\Echo01\\src\\echo06\\hi.txt");
boolean b = file4.renameTo(file5);
System.out.println(b);
System.out.println();
System.out.println(file2.getAbsoluteFile());
System.out.println(file2.getPath());
System.out.println(file2.getName());
System.out.println(file2.getParent());
System.out.println(file2.length());
System.out.println(file2.lastModified());
}
@Test
public void test3() {
File file1 = new File("D:\\Data\\JavaProject\\Echo01\\src\\echo06\\hi.txt");
System.out.println(file1.isDirectory());
System.out.println(file1.isFile());
System.out.println(file1.exists());
System.out.println(file1.canRead());
System.out.println(file1.canWrite());
System.out.println(file1.isHidden());
File file2 = new File("D:\\Data\\JavaProject\\Echo01\\src\\echo06\\");
System.out.println(file2.isDirectory());
}
@Test
public void test4() throws IOException {
File file1 = new File("hello.txt");
if (!file1.exists()) {
file1.createNewFile();
System.out.println("create success");
}else{
file1.delete();
System.out.println("delete");
}
}
3. 遍历指定目录下的所有目录
@Test
public void dirTest() {
File file = new File("D:\\rjaz");
File[] files = file.listFiles();
FileFilter fileFilter = new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.isDirectory();
}
};
files = file.listFiles(fileFilter);
System.out.println(files.length);
if (files.length == 0) {
System.out.println("不是目录");
} else {
for (int i = 0; i < files.length; i++) {
File filename = files[i];
System.out.println(filename);
}
}
}
4. 遍历指定目录下的所有文件,判断目录下是否是文件
@Test
public void fileTest() {
File file = new File("D:\\rjaz\\dingding");
String[] fileDir = file.list();
if (fileDir == null) {
System.out.println("不是文件");
} else {
for (int i = 0; i < fileDir.length; i++) {
File filename = new File(file+"\\"+fileDir[i]);
if(filename.isFile())
System.out.println(fileDir[i]);
}
}
}
5. 在目录中查找指定的文件
@Test
public void fileSearch() {
File file = new File("D:\\rjaz");
FilenameFilter filenameFilter = new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.startsWith("x");
}
};
String[] fileName = file.list(filenameFilter);
if (fileName == null) {
System.out.println("不是目录");
} else {
for (int i = 0; i < fileName.length; i++) {
System.out.println(fileName[i]);
}
}
}
6. 查看当前工作路径
String curDir = System.getProperty("user.dir")
System.out.println(curDir);
7. 遍历所有目录
@Test
public void directoryAll() {
File dir = new File("D:\\文档");
visitAllDirsAndFiles(dir);
}
public static void visitAllDirsAndFiles(File dir) {
System.out.println(dir);
if (dir.isDirectory()) {
String[] filesname = dir.list();
for (int i = 0; i < filesname.length; i++) {
visitAllDirsAndFiles(new File(dir, filesname[i]));
}
}
}