Java IO学习--File类
一、File类
File类具备一定的误导性,可能容易认为它指代的是文件,实际并非如此,它既能代表一个特定文件的名称,又能表示一个目录下一组文件的名称。简而言之,File类是文件或者目录路径名的抽象表示,可以帮助我们处理文件目录的问题。
注意:File类只能操作文件的属性,文件的内容它是无法操作的,需要借助流才能操作。
二、File类的使用
1 public class FileDemo { 2 3 public static void main(String[] args) { 4 5 File file2 = new File("E:\\test\\a.txt");//特别需要注意,这样的路径形式在windows下有效 6 7 File file3 = new File("E:\\test");//通过路径构建File 8 9 File file4 = new File("E:","test");//从父类路径和子类路径名构建File 10 11 File file5 = new File(file3,"a.txt");//从父类File和子类路径名构建File 12 13 System.out.println(file2); 14 System.out.println(file3); 15 System.out.println(file4); 16 System.out.println(file5); 17 System.out.println(File.separator);//连续多个路径字符串的分隔符 18 System.out.println(File.pathSeparator);//分隔同一个路径字符串中的目录的 19 File[] files = File.listRoots(); 20 for (File file : files) { 21 System.out.println(file); 22 } 23 24 } 25 26 }
结果输出:
E:\test\a.txt
E:\test
E:\test
E:\test\a.txt
\
;
C:\
D:\
E:\
F:\
三、File类常用方法
①、创建方法
1.boolean createNewFile() 根绝给定的path创建文件,不存在返回true 存在返回false
2.boolean mkdir() 创建目录,如果上一级目录不存在,则会创建失败
3.boolean mkdirs() 创建多级目录,如果上一级目录不存在也会自动创建
②、删除方法
1.boolean delete() 删除文件或目录,如果表示目录,则目录下必须为空才能删除
2.boolean deleteOnExit() 文件使用完成后删除
③、判断方法
1.boolean canExecute()判断文件是否可执行
2.boolean canRead()判断文件是否可读
3.boolean canWrite() 判断文件是否可写
4.boolean exists() 判断文件或目录是否存在
5.boolean isDirectory() 判断此路径是否为一个目录
6.boolean isFile() 判断是否为一个文件
7.boolean isHidden() 判断是否为隐藏文件
8.boolean isAbsolute()判断是否是绝对路径 文件不存在也能判断
④、获取方法
1.String getName() 获取此路径表示的文件或目录名称
2.String getPath() 将此路径名转换为路径名字符串
3.String getAbsolutePath() 返回此抽象路径名的绝对形式
4.String getParent()//如果没有父目录返回null
5.long lastModified()//获取最后一次修改的时间
6.long length() 返回由此抽象路径名表示的文件的长度。
7.boolean renameTo(File f) 重命名由此抽象路径名表示的文件。
8.File[] liseRoots()//获取机器盘符
9.String[] list() 返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。
10.String[] list(FilenameFilter filter) 返回一个字符串数组,命名由此抽象路径名表示的目录中满足指定过滤器的文件和目录。
具体的使用如下(挑选几个常用的):
1 public class FileDemo2 { 2 3 public static void main(String[] args) { 4 5 File file = new File("E:\\test.txt"); 6 try { 7 //创建文件 8 System.out.println(file.exists());//判断文件是否存在 9 System.out.println(file.createNewFile());//创建文件,空文件,大小为0 10 System.out.println(file.exists());//判断文件是否存在 11 //获取文件相关属性 12 System.out.println(file.length());//文件大小 13 System.out.println(new Date(file.lastModified()));//文件最后修改时间 14 System.out.println(file.getName());//获取文件名 15 System.out.println(file.getPath());//获取文件路径 16 System.out.println(file.getAbsolutePath());//获取绝对路径 17 System.out.println(file.getParent());//获取父路径 18 System.out.println(file.getParentFile());//获取父File 19 20 //判断文件的相关特点 21 System.out.println(file.canExecute());//能否执行 22 System.out.println(file.canRead());//能否读写 23 System.out.println(file.canWrite());//能否读写 24 System.out.println(file.isFile());//是否是文件 25 System.out.println(file.isHidden());//是否是隐藏文件 26 } catch (Exception e) { 27 e.printStackTrace(); 28 } 29 30 31 } 32 33 }
结果输出:
false true true 0 Tue Jul 10 21:47:32 CST 2018 test.txt E:\test.txt E:\test.txt E:\ E:\ true true true true false