JavaSE进阶
第13章 IO流
13.1 File类的使用
13.1.1 File类
- io.File类:文件和目录路径名的抽象表示形式,与平台无关
- File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。
- File对象可以作为参数传递给流的构造器
13.1.2 File类的常见构造器
- public File(String pathname)
以pathname为路径创建File对象,可以是绝对路径或者相对路径,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储。
- public File(String parent,String child)
以parent为父路径,child为子路径创建File对象。
- File的静态属性String separator存储了当前系统的路径分隔符。
- 在UNIX中,此字段为‘/’,在Windows中,为‘\\’
13.1.3 File类常用API
访问文件名:
- getName()
- getPath()
- getAbsoluteFile()
- getAbsolutePath()
- getParent()
- toPath()
- renameTo(File newName)
文件检测
- exists()
- canWrite()
- canRead()
- isFile()
- isDirectory()
获取常规文件信息
- lastModified()
- length()
文件操作相关
- createNewFile()
- delete()
目录操作相关
- mkdir()
- mkdirs()
- delete()
- list()
- listFiles()
案例:
File dir1 = new File("D:/IOTest/dir1");
if (!dir1.exists()) { // 如果D:/IOTest/dir1不存在,就创建为目录
dir1.mkdir(); }
// 创建以dir1为父目录,名为"dir2"的File对象
File dir2 = new File(dir1, "dir2");
if (!dir2.exists()) { // 如果还不存在,就创建为目录
dir2.mkdirs(); }
File dir4 = new File(dir1, "dir3/dir4");
if (!dir4.exists()) {
dir4.mkdirs();
}
// 创建以dir2为父目录,名为"test.txt"的File对象
File file = new File(dir2, "test.txt");
if (!file.exists()) { // 如果还不存在,就创建为文件
file.createNewFile();}
13.1.4 练习题
- 利用File构造器,new 一个目录file
1)在其中创建多个文件和目录
2)编写方法,实现删除file中文件的操作
2.列出指定目录下的全部文件名称