File类,什么是File类,它是java.io包下代表与平台无关的文件和目录的类。
在程序中操作文件和目录都是用File类完成,
File可以新建文件、删除文件、重命名文件和目录,但是不能访问文件内容本身
如果要访问文件内容本身就要使用输入/输出流。
File类的构造器
构造器 |
说明 |
File(String pathname) |
通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实 例。 |
File(String parent, String child) |
根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实 例。 |
File(File parent, String child) |
根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实 例。 |
File(URI uri) |
通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例。 |
File是一个类,文件类。
所以要使用它来创建目录或文件等就要先实例化它的类。
实例化File类
File file = new File(”E:/z[你是猪?1] ”);
然后调用mkdir方法创建一个新的文件夹:
如:file.mkdir()
用createNewFile方法创建一个新的空文件(.txt类型文件)
如:file. createNewFile()
在创建时文件名必须要是唯一的才可以创建
file.exists()判断是否已经存在该文件名
isDirectory() 测试此抽象路径名表示的文件是否是一个目录
File类只能够创建,删除等文件,但是不能够进行访问文件中的内容,也不能向文件中输入内容,
下面我们了解下怎么向文件输入(写入),输出内容。
实现输入输出就得要用到Java中的IO”流”(stream)
流的分类:
流有输入和输出流,它们都是从程序运行所在内存的角度来划分的。
输入流:只能读取数据,由InputStream 和Reader作为基类
输出流:只能写入数据,由OutputStream 和 Writer作为基类
字节流:字节流操作的数据单元是8位的字节,由InputStream和OutputStream作为基类
字符流:字符流操作的数据单元是16位的字符,由Reader 和 Writer作为基类
节点流:可以从向一个特定的IO设备(如此磁盘、网络)读/写数据的流,也被称为低级流
处理流:用于对一个已存在的流进行连接或封装、通过封装后的流来实现数据读/写功能。也称为高级流。
InputStream类的方法
Reader类的方法
OutputStream类的方法
Writer类的方法
InputStream/Reader:所有输入流的基类、前者是字节输入流,后者是字符输入流
OutputStream/Writer:所有输出流的基类、前者是字节输出流,后者是字符输出流
InputStream和Reader都是抽象类,本身不能创建实例、但它们分别有一个用于读取文件的输入流:FileInputStream 和 FileReader、它们都是节点需要直接和指定文件关联。
InputStream/Reader:是输入流
InputStream读取的是字节流,参数是byte数组(byte[])
实例化方法:InputStream input = new FileInputStream(”E:\\z\\rr”);
Reader读取的是字符,使用的参数是char数组(char[]);
实例化方法:Reader reader= new FileReader(”E:\\z\\rr”);
OutputStream和Writer: 输出流 new 的对象是FileOutputStream/FileWriter
OutputStream 和 Writer相比,Writer多了个append 的追加方法。
处理流:(PrintWriter printWriter = new PrintWriter();)
处理流可以隐藏底层设备上节点流的差异,并对外提供更加方便的输入/输出方法,让 程序员只需关心高级流的操作。
使用处理流时的典型思路是,使用处理流来包装节点流,程序通过处理流来执行输入 输出功能,让节点流与底层的IO设备、文件交互。
实际识别处理流非常简单,只要流的构造器参数不是一个物理节点,而是已经存在的 流,那么这种流就一定是处理流;而所有节点流都是直接以物理IO节点作为构造器参数的。
使用处理流的优势:
1. 对开发人员来说,使用处理流进行输入/输出操作更简单;
2. 使用处理流的执行效率更高。
转换流
输入/输出流体系中还提供了两个转换流,这两个转换流用于将字节流转换成字符流, 其中InputStreamReader将字节输入流转换成字符输入流, OutputStreamWriter将字节输出流转换成字符输出流