码迷,mamicode.com
首页 > 其他好文 > 详细

基础篇之io流

时间:2017-09-07 18:05:53      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:ext   反序   否则   output   exce   分割   迭代器   nbsp   编码问题   

1.\和/及pathSeparator与separator

\是在Windows下的文件分割符,在java中\表示转义,文件分隔符为\\

/非Windows下的文件分割符如Linux,推荐使用的格式,在其他情况下也可以使用

pathSeparator与系统有关的路径符分割符,相当于“;”,可以跨平台使用

separator与系统有关的默认文件分割符,相当于java中的“\\”,可以跨平台使用

2. 字节流和字符流

字节流可以处理任何文件,字符流一般用于处理文本文件

3. 字符流存在的原因

每个国家的字符不一样,所以涉及到字符编码问题,为了获取正确的数据,所以需要添加指定的编码集继续解析,所以就存在了字符流。

4. 文件被破坏的原因

字节数不够或者字节码乱码

5. 常用的输入输出流及转换流等

1》输入流

FileInputStream:从文件系统中的某个文件中获得输入字节

BufferedInputStream:该类实现缓冲的输入流,提高效率,所以一般都会对FileInputStream进行相应的包装

FileReader读取字符流;

BufferedReader:该类实现缓冲的字符输入流,提高效率,所以一般都会对FileReader进行相应的包装,采用了装饰模式(放大器)

PrintStream:system.out及system.err的返回类型,可以输入至文件,也可以显示到控制台,system中也有相应的方法。

DatainputStream:写入和读出顺序续需要保持一致,否则可能会乱码,readUTF()以utf-8的形式读出字符,没有找到相应内容,输出EOFException异常

ObjectInputStream:非序列化的写出为初始化默认值,文本里面的内容还是看不懂的

ByteArrayInputStream:保存在内存中,后续可写入文件,这个流的空间不宜过大,否则内存会卡

2》输出流

FileReader ,BufferedWriter,FileOutputStream,BufferedOutputStream,PrintWriter ,

ObjectOutputStream

DataOutputStream:writeUTF(String str)以utf-8的形式写字符,文本的内容是给电脑看的,我们看不懂

ObjectOutputStream:先序列化,后反序列化,不是所有的都能序列化,需要实现Serializable接口,在Serializable接口中不需要序列化属性前加transient;

转换流

3》转换流

InputStreamReader:是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。

OutputStreamWriter:是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节

4》其他

RandomAccessFile:String mode模式有r只读,rw读和写等,里面有一个Seek方法可以指定从某处开始读取;其他方法和字节流类似,seek的字节数需要与对应编码集一致

SequenceInputStream:SequenceInputStream(Enumeration<? extends InputStream> e),按迭代器的顺序依次输入InputStream的子类;

基础篇之io流

标签:ext   反序   否则   output   exce   分割   迭代器   nbsp   编码问题   

原文地址:http://www.cnblogs.com/gg128/p/7490774.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!