I/O具体类

1)FileInputStream和FileOutputStream:

以字节为操作单位的文件输入流和文件输出流。利用这两个类可以对文件进行读写操作。


注意:FileInputStream读取中文会出现乱码,原因是在Unicode编码中,一个英文字符是
用一个字节编码,而一个中文字符则是用两个字节编码,而用字节流读取中文时,是一个一个字节读取,所以会出现编码错误。
注意:FileOutputStream往文件中写入的中文字符没有乱码,原因是程序先把中文字符转成了字节数组,打开文件时文件编辑器(如Windows记事本或其他工具)能自动识别中文字符。


2)FileReader和FileReader:

以字符(2个字节)为操作单位的文件输入流和文件输出流。

使用这两个类可以避免读取中文出现乱码的问题。


2)FileReader和FileWriter:是以字符为操作单位的文件输入流和文件输出流。利用这两个类可以对字符文本文件进行读写操作。
***注意:FileReader读取中文的时候不会出现乱码。

3)BufferedInputStream和BufferedOutputStream:针对字节的缓冲输入流和输出流。利用这个两个类可以提高数据读写的速度。因为他们会创建一个内部缓冲区数组,所有读取或写入的字节,都会先填充这个缓冲区,然后一次性读取或写入都目标数据源中。

4)BufferedReader和BufferedWriter:针对字符的缓冲输入流和输出流。利用这两个类可以提高数据读写的速度。BufferedReader还支持读取整行数据。
***注意:在操作字节文件或字符文件时,建议使用带缓冲给你的输入流和输出流,以提高程序的效率。

5)其他的输入流和输出流

ZipInputStream和ZipOutputStream:实现ZIP压缩文件的读写功能;

RandomAccessFile:实现在文件的任何地方读写数据。

PrintStream和PrintWriter:实现提供一些的print和println方法。

System.ou.println中的System.out就是PrintStream的实例。

DataInputStream和DataOutputStream:实现从文本读取和写入文本的基本类型的数据。

InputStreamReader和OutputStreamWriter:实现字节流和字符流之间的转换。


对象的序列化和反序列化:

JDK提供了两个类(ObjectOutputStream和(ObjectIntputStream),用于存储和读取基本数据类型或对象。它最强大之处就是可以iyo把java中对象写入到数据源中,也能把对象从数据源中还原回来。

用ObjectOutputStream类存储基本类型数据或对象的机制叫做序列化;

用ObjectIntputStream类读取基本类型数据或对象的机制叫反序列化;

特点:
1)能被序列化的对象所对应的类必须实现java.io.Serialozable这个标识性借口(借口中没有抽象方法)。凡是实现借口的类都有一个表示序列化版本标识的静态变量。
private static final long serialVersionUID(用来表明类的不同版本的兼容性可以通过Eclipse自动添加)。
2)在序列化过程中,其所属类的static属性和方法代码不能被序列化处理。
3)对于个别不希望被序列化的非static属性,可以再属性申明时transient关键字进行表明。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值