第八章:File IO
1.使用File类操作文件或目录属性
File对象既可以表示文件,也可以表示目录。在程序中,一个File对象可以代表一个文件或目录。
创建File对象对象的语法
File file = new File(String pathName);//pathName指的是文件路径名
File类的常用方法
方法名称 | |
---|---|
boolean exists() | 判断文件或目录是否存在 |
boolean isFile() | 判断是否是文件 |
boolean isDirectory() | 判断是否是目录 |
String getPath() | 返回此对象表示的文件的相对路径名 |
String getAbsolutePath() | 返回此对象表示的文件的绝对路径名 |
String getName() | 返回此对象表示的文件或目录的名称 |
boolean delete() | 删除此对象指定的文件或目录 |
boolean createNewFile() | 创建名称的空文件,不创建文件夹 |
long length() | 返回文件的长度,单位为字节,若文件不存在,则返回0L |
2.Java的流
流,是指一连串流动的字符,事宜先进先出的方式发送和接收数据的通道,流具有明确的方向性,当向一个流写入数据时,这个流被称为输出,输出流可以将信息送往程序的外部。
按照不同的方式分类,可以将流分为不同的类型。
**1.输入流:**只能从中读取数据,而不能向其中写入数据。
字节流:InputStream,操作的数据单元是8位的字节
字符流:Reader,操作的数据单元是16位的字符
**2.输出流:**只能向其中写入数据,而不能从中读取数据。
字节流:OutputStream,操作的数据单元是8位的字节
字符流:Writer,操作的数据单元是16位的字符
这是个基类都是抽象类。
3.读写文本文件
1.使用字节流读取文本文件
1.字节输入流InputStream类
读取数据的常用方法
方法名称 | 说明 |
---|---|
int read() | 读取一个字节数据 |
int read(byte[] b) | 将数据读取到字节数组中 |
int read(byte[] b,int off,int len) | 从输入流中读取最多len长度的字节,保存到字节数组b中,保存的位置从off开始 |
void close() | 关闭输入流 |
int available() | 返回输入流读取的估计字节数 |
无参read()方法从输入流读取一个八位的字节,把它转换为0~255的整数返回。
2.字节输入流FileInputStream类
通常使用InputStream的子类File类来实现文本文件内容的读取。
fileObject.available()可读取的字节数
fileObject.read()读取文件的数据
fileObject.close()关闭
2.使用字节流写文本文件
1.字节输出流OutputStream类
字节输出流OutputStream类的作用是把内存中的数据输出到文件中。
OutputStream类的常用方法
方法名称 | 说明 |
---|---|
void write(int c) | 写入一个字节数据 |
void write(byte[]buf) | 写入数组buf的所有字节 |
void write(byte[]b,int off,int len) | 将字节数组中从off位置开始,长度为len的字节数据输出到输出流中 |
void close() | 关闭输出流 |
2.字节输出流FileOutStream类
通常使用OutputStream的子类FileOutputStream类实现向文本文件写入数据。
1.使用字符流读取文本文件
1.字符输入流Reader类
Reader类常用方法
方法名称 | 说明 |
---|---|
int read() | 从输入流中读取单个字符 |
int read(byte[] c) | 从输入流中读取c.length长度的字符,保存到字符数组c中,返回实际读取的字符数 |
read(char[] c,int off. int len) | 从输入流中读取最多len的长度字符,保存到字符数组c中,保存的位置从off位置开始,返回实际读取的字符长度 |
void close() | 关闭流 |
4.二进制文件的读写
读写二进制文件常用的类有DataInputStream和DataOutputStream。
1.使用字节流类DataInputStream读二进制文件
DataInputStream类是FileInputStream的子类。
2.使用字节流DataOutputStream写二进制文件
DataOutputStream类是FileOutputStream的子类