File类的使用
1.File类的一个对象,代表一个文件或一个文件目录
2.File类声明在java.io下
3.File类涉及到关于文件或文件目录的创建、删除、重命名、修改时间、文件大小等方法,并未涉及到写入或者读取文件内容的操作。如果需要读取读取或者写入文件内容,必须使用IO流来完成。
4.后续File类的对象常会作为参数传递到流的构造器中,指明读取或写入的“终点”
File的三种构造器
1.创建File类实例
- File(String filepath)
- File(String parentPath, String childPath)
- File(File parentPath, String childPath)
2.绝对路径:
相对路径:
3.路径分割符:
- windows:\(转义:\\)
- unix: / (windows中同样识别)
- 路径分隔符:File.separator
File file1 = new File("hello.txt");//相对于当前的module
System.out.println(file1);
File file2 = new File("E:\\", "ThinkingInJava");
System.out.println(file2);
File file3 = new File(file2, "hi.txt");
System.out.println(file3);
File常用方法
File file1 = new File("hello.txt");
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()));
查看目录内容
File file = new File("E:\\ThinkingInJava");
String[] list1 = file.list();
for (String s : list1) {
System.out.println(s);
}
File[] list2 = file.listFiles();
for (File f : list2) {
System.out.println(f);
}
文件重命名(renameTo)
public boolean renameTo(File dest):把文件重命名为指定的文件路径
比如:
file1.renameTo(file2)
要保证返回值true,需要file1在硬盘中真实存在,且file2不能在硬盘中存在
File file1 = new File("hello.txt");
File file2 = new File("hi.txt");
boolean renameTo = file1.renameTo(file2);
System.out.println(renameTo);
查看文件属性的方法
File file1 = new File("hello.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 file1 = new File("hello.txt");
if (!file1.exists()) {
file1.createNewFile();
System.out.println("创建成功");
} else {
file1.delete();
System.out.println("删除成功");
}
文件目录的创建
mkdir():如果不存在上层目录,方法不执行
mkdirs():任意产生复杂的目录
File file1 = new File("d:\\io\\io1\\io3");
boolean mkdir1 = file1.mkdir();
if (mkdir1) {
System.out.println("创建成功1");
}
File file2 = new File("d:\\io\\io1\\io4");
boolean mkdir2 = file2.mkdirs();
if (mkdir2) {
System.out.println("创建成功2");
}