Java-File类

Posted 为你编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java-File类相关的知识,希望对你有一定的参考价值。

 1 import java.io.File;
 2 import java.io.IOException;
 3 /**
 4  * 文件基本操作
 5  */
 6 public class FileTest {
 7     public static void main(String[] args) {
 8         //根据路径,创建一个文件对象
 9         File file = new File("E:/printTest.txt");
10         //该文件对象提供了对文件判断和操作的方法
11         //判断文件是否存在
12         if(file.exists()) {
13             //文件重命名
14             file.renameTo(new File("E:/print.txt"));
15             //同分区之间的移动
16             file.renameTo(new File("E:/test/print.txt"));
17             //判断是否为文件
18             Boolean flag = file.isFile(); 
19             System.out.println(flag);
20             //判断是否为文件夹
21             Boolean flag1 = file.isDirectory(); 
22             System.out.println(flag1);
23             //删除文件
24             file.delete(); 
25         }else {
26             try {
27                 //如果不存在该文件,则可以根据路径创建文件
28                 file.createNewFile();
29             } catch (IOException e) {
30                 e.printStackTrace();
31             }
32         }
33     }
34 }
 1 import java.io.File;
 2 /**
 3  * 文件常用属性
 4  */
 5 public class FileTest1 {
 6     public static void main(String[] args) {
 7         File file = new File("E:/print.txt");
 8         boolean exists = file.exists();                    //文件是否存在
 9         boolean directory = file.isDirectory();         //是否为文件夹
10         boolean canRead = file.canRead();                 //文件是否可读
11         boolean canWrite = file.canWrite();             //文件是否可写
12         String name = file.getName();                    //文件名称
13         String path = file.getPath();                    //文件路径
14         String absolutePath = file.getAbsolutePath();    //文件的绝对路径
15         
16         // 文件的父级路径
17         // 当创建的file上一级目录为空时返回null   例如:File file = new File("test.txt");
18         String parent = file.getParent();
19         // 通过以下方式可以获取文件的绝对路径,然后在获取父级路径
20         String parent2 = new File(absolutePath).getParent();
21 
22         long size = file.length();// byte
23         float size1 = (float)file.length()/1000;// KB
24         // 文件是否被隐藏  linux中文件以.开头则为隐藏   window中查看文件属性查看是否隐藏
25         boolean hidden = file.isHidden(); 
26     }
27 }
 1 import java.io.File;
 2 
 3 /**
 4  * 文件读写属性
 5  */
 6 public class FileTest2 {
 7     public static void main(String[] args) {
 8         File file = new File("E:/print.txt");
 9         
10         file.setWritable(true);//设置可写
11         file.setWritable(false);//设置不可写
12         
13         file.setReadable(true);//设置可读
14         file.setReadable(false);//设置不可读
15         
16         file.setReadOnly();//设置只读
17     }
18 }
 1 import java.io.File;
 2 /**
 3  * 遍历文件夹
 4  */
 5 public class FileTest3 {
 6     public static void main(String[] args) {
 7         printFiles(new File("E:/test/"),1);
 8     }
 9     public static void printFiles(File dir,int tab) {
10         if(dir.isDirectory()) {//判断是否为文件夹
11             File[] listFiles = dir.listFiles();//获取文件夹中所有的文件
12             //遍历获取的所有文件
13             for (int i = 0; i < listFiles.length; i++) {
14                 for (int j = 0; j < tab; j++) {
15                     System.out.print("|--");//目录结构的分隔符
16                 }
17                 System.out.println(listFiles[i].getName());
18                 //判断遍历的元素是否为文件夹,如果是则继续调用printFiles()方法
19                 if(listFiles[i].isDirectory()) {
20                     printFiles(listFiles[i],tab+1);
21                 }
22             }
23         }
24     }
25 }
 1 import java.io.File;
 2 import java.io.IOException;
 3 import java.nio.file.Path;
 4 
 5 /**
 6  * File类方法介绍
 7  */
 8 public class FileTest4 {
 9     public static void main(String[] args) throws IOException {
10         File file = new File("E:\test\");
11         
12         System.out.println(File.separator);//文件的路径分隔符
13         
14         //路径操作
15         System.out.println(file.getName());//如果该路径为文件,则获取文件名称,如果是目录,则获取目录名
16         System.out.println(file.getParent());//获取父级路径的字符串
17         System.out.println(file.getParentFile());//获取父级路径的File对象
18         System.out.println(file.getPath());//获取抽象路径为字符串路径
19         System.out.println(file.toURI());//将抽象路径转成uri    file:/E:/test/2/1.txt
20         
21         System.out.println(file.getAbsolutePath());//获取绝对路径的字符串路径,如果抽象路径不是绝对路径,则默认添加上工程路径
22         System.out.println(file.getAbsoluteFile());//获取绝对路径后转成File
23         System.out.println(file.getCanonicalPath());//返回规范路径字符串格式
24         System.out.println(file.getCanonicalFile());//返回规范路径File对象
25         
26         //判断
27         System.out.println(file.isAbsolute());//判断是否为绝对路径
28         System.out.println(file.canRead());//判断是否可读
29         System.out.println(file.canWrite());//判断是否可写
30         System.out.println(file.canExecute());//是否可执行;
31         System.out.println(file.exists());//判断是否存在
32         System.out.println(file.isDirectory());//判断是否为目录
33         System.out.println(file.isFile());//判断是否为文件
34         System.out.println(file.isHidden());//判断是否隐藏
35         
36         //文件访问权限设置
37         file.setReadOnly();//设置文件只读
38         file.setReadable(true);//设置文件可读
39         file.setReadable(true, true);//第一个是否可读,第二个是否只读
40         file.setWritable(true);//设置文件可写
41         file.setWritable(true, true);//文件只写,第一个是否可写,第二个是否只写
42         file.setExecutable(true);//设置文件可执行
43         file.setExecutable(true, true);//第一个是否可执行,第二个文件所属者可执行
44 
45         //最后一次修改时间的获取和设置
46         System.out.println(file.lastModified());//获取文件最后修改时间
47         System.out.println(file.setLastModified(123456L));//设置文件最后一次修改时间
48         
49         System.out.println(file.length());//如果是文件,则返回文件内容大小字节数,如果是目录则返回0
50         
51         //创建目录
52         file.mkdir();//如果抽象路径是目录,则创建该目录
53         file.mkdirs();//创建多级目录,包含父级目录,如果创建失败,可能已经创建了父级目录
54         File.createTempFile("aaa", ".temp", file);//指定前缀和后缀,根据File的抽象路径目录,创建临时文件
55         
56         //创建文件和删除
57         System.out.println(file.createNewFile());//文件不存时根据抽象路径创建
58         System.out.println(file.delete());//删除目录或者文件,如果是文件,则直接删除,如果是目录,空目录则删除返回true,如果不是空目录,返回false
59         file.deleteOnExit();//强制删除,不管目录下是否为空
60         
61         //获取抽象路径下的目录和文件名称或者所有的抽象路径
62         file.list();//返回抽象路径下所有文件名或者目录名的字符串数组(接收参数FilenameFilter)
63         file.listFiles();//返回抽象路径下所有文件或者目录的抽象路径File数组(FileFilter或者FilenameFilter)
64         
65         file.renameTo(new File("2"));
66         
67         //文件系统操作
68         File[] listRoots = file.listRoots();  //获取系统所有根目录 C:  D:  E:
69         long totalSpace = file.getTotalSpace();//获取文件所在根目录总容量
70         long freeSpace = file.getFreeSpace();//获取文件所在磁盘的可用空间大小
71         long usableSpace = file.getUsableSpace();//获取文件所在磁盘已经使用的空间大小
72         
73         
74         int compareTo = file.compareTo(new File("E:\test\"));//比较两个目录,返回0表示路径相同
75         boolean equals = file.equals(new File("E:\test\"));//比较两个目录,返回true表示路径相同,否则返回false
76         
77         file.toString();//返回抽象路径的字符串路径,调用的getPath()方法
78         Path path = file.toPath();//抽象路径转成Path对象
79     }
80 }

 

以上是关于Java-File类的主要内容,如果未能解决你的问题,请参考以下文章

Java-File类详解(一篇讲透)

如何通过单击片段内的线性布局从片段类开始新活动?下面是我的代码,但这不起作用

elasticsearch代码片段,及工具类SearchEsUtil.java

Android 逆向类加载器 ClassLoader ( 类加载器源码简介 | BaseDexClassLoader | DexClassLoader | PathClassLoader )(代码片段

为啥片段类应该是公开的?

片段内部静态类和gradle问题