整个IO的核心组成:五个类(File 、OutputStream、InputStream、Writer、Reader)一个接口(Serializable )
java.io包之中File类是唯一一个与文件本身操作(文件的创建、删除、取得文件信息等等)有关的程序类。
File是一个普通类,所以这个类直接产生实例化对象
构造方法一:public File(String pathname);
构造方法二:public File(File parent, String child);//设置父路径子路径
普通方法 :
1、创建新文件
public boolean createNewFile() throws IOException
File 类只负责创建文件本身,对于文件内容不负责任
2、删除文件
public boolean delete()
3、判断文件是否存在
public boolean exists()
4、获取文件的父目录
public File getParentFile()
代码实现:
public class TestFile {
public static void main(String[] args) throws IOException {
//有不同的操作系统来的JVM来最终决定separator是什么内容
//f:文件路径
File file=new File("f:"+File.separator+"hello"+File.separator
+"aa"+File.separator+"bb"+File.separator+"hello.txt");
//判断父路径是否存在
if(!file.getParentFile().exists()){
//不存在创建父路径
file.getParentFile().mkdirs();
}
if(file.exists()){ //判断文件是否存在
file.delete(); //删除文件
}else{
file.createNewFile(); //创建新文件
}
}
}
5、判断路径是否是文件
public boolean isFile()
6、判断路径是否是目录
public boolean isDirectory()
7、获取文件大小(字节)
public long length()
8、获取最后一次修改日期
public long lastModified()
9、创建目录
public boolean mkdirs()
代码实现
public class TestFIle03 {
public static void main(String[] args) {
File file=new File("d:"+File.separator+"应用"); //要操作的文件目录
//先判断文件是否存在在判断是否为文件夹
if(file.exists()&&file.isDirectory()){
//获取该目录下的所有文件
File []fs=file.listFiles();
for(File f:fs){
System.out.println(f);
}
}
}
}
遍历d盘所有文件
public class TestDemo {
public static void main(String[] args) {
//创建一个新线程,防止主线程阻塞;
new Thread(() ->{
File file = new File("d:" + File.separator);
listDir(file);
}).start();;
System.out.println("开始进行文件列出..............");
}
public static void listDir(File file) {
if (file.isDirectory()) {
File[] result = file.listFiles();
if (result != null) {
for (int i = 0; i < result.length; i++) {
listDir(result[i]);
}
}
}
System.out.println(file);
}
}