使用字符流读写文本与序列化

一、使用字符流读写文本文件
BufferedReader和FileReader两个类都是Reader抽象类的子类,它们可以通过字符流的方式读取文件,并使用缓冲区,提高了读文本文件的效率。读取文本文件的具体步骤如下:
(1)引入相关的类
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.IOException;
(2)构造一个BufferedReader对象
FileReader fr=new FileReader(“mytest.txt”);
BufferedReader br=new BufferedReader(fr);
(3)利用BufferedReader类的方法读取文本文件的数据
br.readLine();
(4)关闭相关的流对象
br.close();
fr.close();
二、使用字符流类BufferedWriter和FileWriter写文本文件
BufferedWriter和FileWriter都是字符输出流Writer抽象类的子类,它们可以通过字符流的方式并通过缓冲区把数据写入文本文件,提高了写文本文件的效率。把数据写入文本文件的具体操作步骤如下:
(1)引入相关的类
import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.IOException;
(2)构造一个BufferedWriter对象
FileWriter fw=new FileWriter(“mytest.txt”);
BufferedWriter bw=new BufferedWriter(fw);
(3)利用BufferedWriter类的方法写文本文件。
bw.write(“hello”);
(4)相关流对象的清空和关闭
bw.flush();
bw.close();
fw.close();
三、读写二进制文件
常见的文件读写中还有一种二进制文件的读写。
1.使用字节流读二进制文件
利用DataInputSteam类读二进制文件,其实与利用FileInputStream类文本文件及其相似,也要用到FileInputStream类关联二进制文件。
(1)引入相关类
import java.io.FileInputStream;
import java.io.DataInputSteam;
(2)构造一个数据输入流对象
FileInputStream fis=new FileInputStream(“HelloWorld.class”);
DataInputStream dis=new DataInputStream(outFile);
(3)利用数据输出流类的方法把数据写入二进制文件
out.write(1);
(4)关闭数据输出流
out.close();
四、序列化
在开发中,经常需要将对象的信息保存到磁盘中便于以后检索。序列化提供了轻松实现这个目标的快捷方法。
序列化就是将对象的状态存储到特定存储介质中的过程,也就是将对象状态转换为可保持或可传输格式的过程。在序列化过程中,会将对象的公有成员、私有成员包括类名,转换成字节流,然后再把字节流写入数据流,存储到存储介质中,这里说的存储介质常指的是文件。
使用序列化的意义在于将Java对象序列化后,可以将其转换为字节序列,这些字节序列可以被保存在磁盘上,也可以借助网络传输,同时序列化后的对象保存的是二进制状态,这样实现了平台无关性。即可以将在Windows操作系统中实现序列化的一个对象,传输到UNIX操作系统的机器上,再通过反序列化后得到的相同对象,而无需单行数据因平台问题显式异常。
序列化机制允许将实现了序列化的Java对象转换为字节序列,这个过程需要借助于I/O流来实现。
Java中只有实现了java.io.Serializable接口的类的对象才能被序列化,Serializable表示可串行的、可序列化的,所以,对象序列化在某些文献上也被称为串行化。JDK类库中有些类,如String类,包装类和Date类等都实现了Serializable接口。
对象序列化的步骤很简单,可以概括为如下两步:
(1)创建一个对象输出流(ObjectOutputStream),它可以包装一个其他类型的输出流,如文件输出流FileOutputSteam。
例如以下代码:
ObjectOutputSteam oos=new ObjectOutputSteam(New FileOutputStream(“C:/myDoc/stu.txt”));
创建了对象输出流oos,包装了一个文件输出流。
(2)通过对象输出流的writeObject()方法写对象,也就是输出可序列化对象。
序列化就是将对象的状态信息保存到存储介质中,反序列化则是从特定存储介质中读取数据并重新构建成对象的工程。通过反序列化,可以将存储在文件上的文件信息读取出来,然后重新构建为对象。
反序列化的步骤大致概括为以下两步:
(1)创建一个对象输入流(ObjectInputStream),它可以包装一个其他类型的输入流,如文件输入流FileInputStream。
(2)通过对象输入流的readObject()方法读取对象,该方法返回一个Object类型的对象,如果程序知道该Java对象的类型,则可以将该对象强制转换称其真实的类型。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值