文章目录
前言
Java的核心库java.io提供了全面的IO接口。包括:文件读写、标准设备输出等。Java中IO是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。 I input O out
下面介绍IO下的重要类之一 File
File类
注意设计文件的读写删除,请大家谨慎测试,比如使用delete删除的文件是无法在回收站进行找回的
File表示文件,是java中文件和路径名的抽象表示
构造方法
1、public File(String pathname)
通过将给定的路径名的字符串转换成一个抽象路径名创建一个新的 File实例
2、public File(String parent,String child)
创建从父路径名的字符串和一个孩子的一个新的 File实例文件
3、public File(File parent,String child)
创建从一个家长的抽象路径名和一个孩子的路径字符串的新 File实例。
2 和 3都是从上级目录下创建一个File类实例, 2中的上级目录类型为String,即代表绝对路径, 3的为File类型,即代表抽象路径
常用方法
createNewFile()
File file = new File("D://test.txt");
boolean newFile = file.createNewFile();
System.out.println(newFile ? "创建文件成功!":"创建文件失败!");
再次运行则失败,因为文件已经存在
可能存在的异常
当读写路径为C盘下的时候,可能会出现Exception in thread “main” java.io.IOException。这个异常,是因为电脑管家或者安全卫士开起来保护,导致C盘拒绝访问,可以尝试使用管理员的身份去运行该文件或更换路径到D盘
mkdir()
File file = new File("C://test.txt");
boolean newFile = file.mkdir();
System.out.println(newFile ? "创建文件夹成功!":"创建文件夹失败!");
mkdirs()
File file = new File("C://1//2//3");
boolean newFile = file.mkdirs();
System.out.println(newFile ? "创建文件夹成功!":"创建文件夹失败!");
delete()
File file = new File("D://test.txt");
boolean res = file.delete();
System.out.println(res ? "删除文件成功!":"删除文件失败!");
getAbsoluteFile()
File file = new File("D://test.txt");
boolean newFile = file.createNewFile();
System.out.println(newFile ? "创建文件成功!":"创建文件失败!");
File absoluteFile = file.getAbsoluteFile();
System.out.println(file.equals(absoluteFile));
}
getAbsolutePath()
File file = new File("D://test.txt");
boolean newFile = file.createNewFile();
System.out.println(file.getAbsolutePath());
getPath()
//创建目录
File dir = new File("D://1//2//3");
dir.mkdir();
//创建文件
File file = new File(dir,"test123.txt");
System.out.println(file.getPath());
getName()
File file = new File("D://test.txt");
boolean newFile = file.createNewFile();
System.out.println("name->"+file.getName());
getParent()
File file = new File("D://test.txt");
boolean newFile = file.createNewFile();
System.out.println("父级目录是->"+file.getParent());
getParentFile()
//创建目录
File dir = new File("D://mytestdir");
dir.mkdir();
//创建文件
File file = new File(dir,"test123.txt");
boolean newFile = file.createNewFile();
System.out.println("父级File是->"+file.getParentFile());
isDirectory()
//创建目录
File dir = new File("D://1//2//3");
boolean mkdir = dir.mkdirs();
//创建文件
File file = new File(dir,"test123.txt");
System.out.println(dir.isDirectory() ? "dir是一个文件夹!":"dir不是一个文件夹!");
System.out.println(file.isDirectory() ? "file是一个文件夹!":"file不是一个文件夹!");
isFile()
//创建目录
File dir = new File("D://1//2//3");
dir.mkdirs();
//创建文件
File file = new File(dir,"test123.txt");
file.createNewFile();
System.out.println(dir.isFile() ? "dir是一个文件!":"dir不是一个文件!");
System.out.println(file.isFile() ? "file是一个文件!":"file不是一个文件!");
length()
//创建目录
File dir = new File("D://1//2//3");
dir.mkdirs();
//创建文件
File file = new File(dir,"test123.txt");
file.createNewFile();
System.out.println(file.length());
list()
//创建目录
File dir = new File("D://1//2//3");
dir.mkdirs();
//创建文件 位于同一级目录下
File file = new File(dir,"test1.txt");
File file1 = new File(dir,"test2.txt");
File file2 = new File(dir,"test3.txt");
File file3 = new File(dir,"test4.txt");
file.createNewFile();
file1.createNewFile();
file2.createNewFile();
file3.createNewFile();
String[] list = dir.list();
for (String s : list) {
System.out.println(s);
}
listFiles()
//创建目录
File dir = new File("D://1//2//3");
dir.mkdirs();
//创建文件 位于同一级目录下
File file = new File(dir,"test1.txt");
File file1 = new File(dir,"test2.txt");
File file2 = new File(dir,"test3.txt");
File file3 = new File(dir,"test4.txt");
file.createNewFile();
file1.createNewFile();
file2.createNewFile();
file3.createNewFile();
File[] files = dir.listFiles();
for (File f : files) {
System.out.println(f);
}
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5ZvoJcfb-1650971575827)(C:/Users/尽欢/AppData/Roaming/Typora/typora-user-images/image-20220426185531039.png)]
renameTo(File dest)
File oldfile = new File("D:\\2\\old.txt");
File newfile = new File("D:\\1\\new.txt");
oldfile.renameTo(newfile);
好啦,以上就是关于IO的第一节File类的简单介绍啦,作为IO环节中最常用的类之一,作为开发人员的我们必须熟练掌握此类,虽说API帮助文档的作用不可小觑,但是该过程势必会耗我们大量的开发时间,会减缓我们的工作效率,作为基础的一部分,还是希望大家能够在看完之后自己手动练习巩固
以上均为本人个人观点,借此分享,希望能和大家一起进步。如有不慎之处,劳请各位批评指正!鄙人将不胜感激并在第一时间进行修改!最后,如果觉得本文对你有用的话,就请给个三连吧!!您的支持就是我最大的创作动力!谢谢~