首页 > 技术文章 > Java 文本I/o与二进制I/o

SKYOFROC 2014-09-21 22:06 原文

1、计算机不区分二进制文件和文本文件,所有文件都是以二进制文件存储的

2、写入字符,Java虚拟机把unicode变成制定的编码,读取则反之,windows下,默认编码是ASCII

?3、对于文本编辑器或者文本输出程序创建的文件,应该用文本输入来读取,对于Java二进制输出文件应该用二进制输入来读取

4、所以Java二进制输出文件可以在任何机子上用java虚拟机运行,因为二进制文件和主机的编码方案无关

5、txt为文本文件,dat为二进制文件

?6、writeBytes()适用于ASCII字符串,用writeChar()准没错

7、UTF-8存ASCII码只要一个字节,很有优势

?8、IO类中激活所有方法都抛出异常 java.io.IOException,所以必须在方法中声明抛出的异常或者把代码放到try-catch块中

 9、可以写入数据流的对象成为可序列化,卡学历恶化的对象是java.io.Serializable接口的实例,这种接口没有方法。Java提供自动写对象的机制,这叫做对象序列化,读取对象的过程称作对象解读序列化,,存储一个可序列化的对象时,会对对象编码,但如果它包括非序列化的数据域,就会出错,所以需要给这些数据域加上关键字,比如 static 和 transient,后者用来修饰一个 class ,readObject 可能会导致FileNotFound 错误,序列化数组需要添加 javax.swing.*

10、以所使用的数据流都是只读和只写的,而读取的外部文件都是顺序文件。

 

推荐阅读