Java中的I-O(二)

30 篇文章 1 订阅

一、Reader类

1、Reader类常用方法

int read( )
int read(char[] c)
read(char[] c,int off,int len)
void close( )

2、子类InputStreamReader常用的构造方法

InputStreamReader(InputStream in)
InputStreamReader(InputStream in,String charsetName)

3、FileReader类

FileReader类是InputStreamReader的子类

  • FileReader(File file)
  • FileReader(String name)

该类只能按照本地平台的字符编码来读取数据,用户不能指定其他的字符编码类型

  • System.out.println(System.getProperty(“file.encoding”)); 获得本地平台的字符编码类型

4、使用FileReader读取文件

与字节流FileInputStream类实现文本文件读取步骤类似
引入相关的类
import java.io.Reader;
import java.io.FileReader;
import java.io.IOExceprion;

创建FileReader对象
Reader fr= new FileReader("D:\\myDoc\\简介.txt");

读取文本文件的数据
fr.read(); 

关闭相关的流对象
fr.close();

5、BufferedReader类

使用FileReader类与BufferedReader类可以提高字符流读取文本文件的效率

  • BufferedReader类是Reader类的子类
  • BufferedReader类带有缓冲区
  • 按行读取内容的readLine()方法

BufferedReader常用的构造方法

  • BufferedReader(Reader in)

子类BufferedReader特有的方法

  • readLine()

6、使用 BufferedReader读文本文件

引入相关类
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.IOException;

构造BufferedReader 对象和FileReader 对象
Reader fr = new  FileReader("C:\\myTest.txt "); 
BufferedReader br = new BufferedReader(fr); 

调用readLine() 方法读取数据
br.readLine();

关闭文件流对象
br.close();
fr.close();

二、Writer类

1、Writer类常用方法

write(String str)
write(String str,int off,int len)
void close()
void flush()

2、子类OutputStreamWriter常用的构造方法

OutputStreamWriter(OutputStream out)
OutputStreamWriter(OutputStream out,String charsetName)

3、FileWriter类

FileWriter类是OutputStreamWriter的子类

  • FileWriter (File file)
  • FileWriter (String name)

该类只能按照本地平台的字符编码来写数据,用户不能指定其他的字符编码类型

4、使用FileWriter写文件

与字节流FileOutputStream类实现向文本文件写入数据步骤类似
引入相关的类
import java.io.Reader;
import java.io.FileWriter;
import java.io.IOException;

创建FileReader对象
Writer fw= new FileWriter("D:\\myDoc\\简介.txt");

写文本文件
fw.write(); 

关闭相关的流对象
fw.close(); 

5、BufferedWriter类

使用FileWriter类与BufferedWriter类 可与提高字符流写文本文件的效率

  • BufferedWriter类是Writer类的子类
  • BufferedWriter类带有缓冲区

BufferedWriter常用的构造方法

  • BufferedWriter(Writer out)

6、使用 BufferedWriter写文件

引入相关的类
import java.io.FileWriter ;
import java.io.BufferedWriter ;
import java.io.IOException;

构造BufferedWriter 对象和FileWriter 对象
FileWriter fw = new FileWriter("C:\\myTest.txt"); 
BufferedWriter bw = new BufferedWriter(fw);

调用write()方法写数据
bw.write("hello");

流对象的清空和关闭flush()close()
bw.flush();  
fw.close();

三、读写二进制文件

1、DataInputStream类

FileInputStream的子类与FileInputStream类结合使用读取二进制文件

2、DataOutputStream类

FileOutputStream的子类与FileOutputStream类结合使用写二进制文件

3、使用 DataInputStream 读二进制文件

引入相关的类
import java.io.FileInputStream; 
import java.io.DataInputStream;

构造数据输入流对象
FileInputStream fis = new FileInputStream("C:\\HelloWorld.class");
DataInputStream dis = new DataInputStream(fis);

调用read()方法读取二进制数据
dis.read();

关闭数据输入流
dis.close();

4、使用 DataOutputStream写二进制文件

引入相关的类
import java.io.FileOutputStream; 
import java.io.DataOutputStream;

构造数据输入流对象
FileOutputStream outFile = new FileOutputStream("C:\\temp.class");
DataOutputStream out = new DataOutputStream(outFile);

调用read ()方法读取二进制数据
out.read();

关闭数据输入流
out.close();

四、序列化和反序列化

1、简介

序列化是将对象的状态写入到特定的流中的过程
反序列化则是从特定的流中获取数据重新构建对象的过程

2、实现序列化

使用集合保存对象,可以将集合中的所有对象序列化

序列化的步骤
实现Serializable接口
创建对象输出流
调用writeObject方法将对象写入文件
关闭对象输出流

3、实现反序列化

如果向文件中使用序列化机制写入多个对象,那么反序列化恢复对象时,必须按照写入的顺序读取

序列化的步骤
实现Serializable接口
创建对象输入流
调用readObject方法读取对象
关闭对象输入流

五、总结

1、BufferedReader和BufferedWriter读写文本文件的优势

使用FileWriter类与BufferedWriter类 可与提高字符流写文本文件的效率
使用FileReader类与BufferedReader类可以提高字符流读取文本文件的效率

2、复制二进制文件使用的流

使用 DataInputStream 读二进制文件
使用 DataOutputStream写二进制文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jule_zhou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值