Java IO系统——File类
来源:互联网 发布:广州医院挂号软件 编辑:程序博客网 时间:2024/05/11 06:05
File类具有一个欺骗性的名字,通常你会认为它对应的是一个文件,但事实并非如此。它既可以代表一个特定的文件目录,也可以代表一个目录内一系列文件的名字,FilePath似乎是一个更好的名字。它代表了与平台无关的文件和目录,如果想在程序中操作文件和目录,都可以通过File类来完成,File能新建、删除、重命名文件和目录,File不能访问文件内容本身,如果要访问文件本身,则需要使用输入/输出流。
一、操作目录
目录,我们可以理解成具体的文件夹,下面我们通过两个例子认识一下File类关于目录的操作。
package IO;import java.io.*;public class FileTest2 {public static void main(String[] args) throws IOException {// 1:传入一个不存在的路径File f1 = new File("test1");System.out.println(f1.exists());// 监测是否存在System.out.println(f1.isFile());// 监测是否是文件System.out.println(f1.isDirectory());// 监测是否是路径f1.mkdir();// 创建文件夹System.out.println(f1.exists());// 监测是否存在System.out.println("============================================");// 2:传入一个存在的路径File f2 = new File("test2");System.out.println(f2.exists());// 监测是否存在System.out.println(f2.isFile());// 监测是否是文件System.out.println(f2.isDirectory());// 监测是否是路径// 使用list方法来列出当前路径下的所有文件和路径String[] fileList = f2.list();System.out.println("======当前路径下所有文件和路径如下=====");for (String fileName : fileList) {System.out.println(fileName);}System.out.println("============================================");}}
输出结果如下:
我们通过以上的例子,可以总结到一下几点:
1.file的构造构造函数既可以传入一个绝对路径,也可以传入一个相对路径。
2.如果传入的字符串不存在对应的路径或文件,则file的既不能确定这个file代表文件还是路径。
3.使用mkdir()方法创建一个文件。
4.使用list()方法,得到该路径下的文件,得到是文件名组成的数组。
二、操作文件
package IO;import java.io.*;public class FileTest2 {public static void main(String[] args) throws IOException {// 3:传入一个不存在的文件File f3 = new File("myfile");System.out.println(f3.exists());// 判断是否存在System.out.println(f3.isFile());// 判断是否是文件System.out.println(f3.isDirectory());// 判断是否是文件f3.createNewFile();//创建文件System.out.println(f3.getName());// 获得文件的名字System.out.println(f3.getPath());// 获得文件的路径System.out.println(f3.getAbsolutePath());// 获得文件的绝对路径System.out.println("============================================");// 4:传入一个存在的文件File f4 = new File("E:\\Computer\\04JAVA\\JavaCode2\\CrazyJava\\file\\file.txt");System.out.println(f4.exists());// 判断是否存在System.out.println(f4.isFile());// 判断是否是文件System.out.println(f4.isDirectory());// 判断是否是文件System.out.println(f4.getName());// 获得文件的名字System.out.println(f4.getPath());// 获得文件的路径System.out.println(f4.getAbsolutePath());// 获得文件的绝对路径System.out.println("============================================");}}
输出结果如下:
通过上面的代码,我们可以知道:
1.可以获得一个文件的相对目录(File()构造函数传入的参数),也可以得到文件的绝对路径。
2.createNewFile()方法创建新的文件。
三、文件过滤器
我们知道文件一般都是有后缀名的,那么如何过滤下面一个目录下的文件呢,java为我们提供了FilenameFilter接口。
package IO;import java.io.*;public class FileTest2 {public static void main(String[] args) throws IOException {// 5:传入一个存在目录,过滤改目录下的文件File f5 = new File("E:\\Computer\\04JAVA\\JavaCode2\\CrazyJava\\test2");MyFilter filter = new MyFilter(".txt");String[] files = f5.list(filter);for (String file : files) {System.out.println(file);}System.out.println("============================================");}static class MyFilter implements FilenameFilter {private String type;public MyFilter(String type) {this.type = type;}@Overridepublic boolean accept(File dir, String name) {return name.endsWith(type);}}}
从上面的程序,我们可以知道,要实现文件过滤,主要有以下步骤:
1.实现FilenameFilter接口,重写accept方法。
2.创建实现接口的类的实例,并指明过滤文件的类型。
3.将接口的实现类作为File类的参数,得到该路径下过滤后的符合规定的条件的文件名数组。
四、总结
通过上面三部分的介绍,我们可以总结一下File这个类操作文件或目录的特点。
1.公共:监测,判断文件/目录是否存在;是否是一个文件;是否是一个目录。
2.文件:创建/删除文件;得到文件名;获得文件的相对路径和绝对路径。
3.路径:创建/删除路径;得到路径下的文件名;过滤路径下的文件名。
- Java IO系统——File类
- Java IO 系统学习之File类
- JavaIO —— java.io.File类
- Java IO——File类
- JAVA:IO流——File类
- Java IO——IO和File
- JAVA—IO—File
- File类java.io.File
- 类 java.io.File
- java.io.File类
- Java IO---File 类
- java IO-File类
- Java IO--File类
- java.io.File类
- Java IO:File 类
- Java-IO-File类
- Java IO:File类
- Java IO-file类
- socket网络字节序
- poj-3292-Semi-prime H-numbers
- ElasticSearch学习13_ElasticSearch RESTful搜索引擎_Java Jest使用入门
- (2.2.10.3)Gradle 编程模型及 API 实例详解
- C++第四次作业
- Java IO系统——File类
- sql server2008 查询当天,最近三天,本周,本月,最近一个月,本季度的数据的sql语句
- HTML5 data-* 自定义属性
- hdu 3199 丑数2
- java笔记→IO流中字节,字符的输入与输出(文件)
- 主存储器与Cpu的连接
- Synchronized详解
- Java中equals和==的区别
- 浙江省赛zoj3946 Highway Project