文件概述
-文件系统是OS(操作系统)管理的
-文件系统和Java进程是平行的,是两套系统
-文件系统是由文件夹和文件递归组合而成
-文件迷离分隔符
-文件包括文件里面的内容和文件的基本属性
-文件基本属性(名称,大小,扩展名,修改时间)
Java文件类File
-Java.io.file 是文件和目录的重要类
-File类与操作系统无关
-File不涉及具体的文件内容,只涉及属性
import java.io.*;
public class Person2{
public static void main(String[] args) {
//创建目录
File d = new File(“D:/temp1”);
if(!d.exists()) {
//mkdir创建单级目录,mkdirs连续创建多级目录
d.mkdirs();
}
System.out.println(“Is d dirextory”+d.isDirectory());
//创建文件
File f = new File(“D:/temp1/abc.txt”);
if(!f.exists()) {
try {
f.createNewFile();//创建abc.txt
}//可能会应为权限不足或磁盘已满报错
catch(IOException e) {
e.printStackTrace();
}
}
//输出文件相关属性
System.out.println(f.isFile());
System.out.println(f.getName());
System.out.println(f.getParent());
System.out.println(f.getPath());
System.out.println(f.length());
System.out.println("last modfied time "+f.lastModified()+“ms”);
//遍历d目录下所有的文件信息
System.out.println(“list file in d directory”);
//列出d目录下所有的子文件,不包括子目录下的文件
File[] fs = d.listFiles();
for(File f1:fs) {
System.out.println(f1.getPath());
}
}
}
Is d dirextorytrue
true
abc.txt
D:\temp1
D:\temp1\abc.txt
0
last modfied time 1598453283792ms
list file in d directory
D:\temp1\abc.txt
Java NIO(Non-Brlocking I/O)
-NIO包提出新的文件系统类
import java.io.*;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class Person2{
public static void main(String[] args) {
//path和java.io.file 基本类似
//获得Path方法,C:/temp1/abc.txt
Path path = FileSystems.getDefault().getPath(“C:/temp1”, “abc.txt”);
System.out.println(path.getNameCount());
//获得path方法2,用file的topath方法获得path对象
File file = new File(“C:/temp1/abc.txt”);
Path pathother = file.toPath();
//0说明这两个path是相等的
System.out.println(path.compareTo(pathother));
//获得path方法3
Path path3 = Paths.get(“C:/temp1”,“abc.txt”);
System.out.println(path3.toString());
//合并两个path
Path path4 = Paths.get(“c:/temp”);
System.out.println(“path4”+path4.resolve(“abc.txt”));
if(Files.isReadable(path)) {
System.out.println(“yes”);
}else {
System.out.println(“no”);
}
}
}
2
0
C:\temp1\abc.txt
path4c:\temp\abc.txt
no