Java IO操作

详细内容,可查看:

https://blog.csdn.net/qq_25184739/article/details/51205186

1. 分类

根据操作对象分为:字节流和字符流,两者的却别在于:字节流处理8 bit的字节,字符流处理16 bit的字符。

Java中字符采用Unicode标准,字符流的本质就是在字节流的基础上增加了编码和解码,也就是查ASCII表的过程。

字节流以InputStream和OutPutStream为基类,字符流以Reader和才为基类。

InputStream和Reader处理输入流,OutPutStream和Writer处理输出流。

操作二进制文件,尽量使用字节流,操作文本文件,尽量使用字符流。

2. java输入/输出流体系中常用的流的分类表

分类字节输入流字节输出流字符输入流字符输出流
抽象基类InputStreamOutputStreamReaderWriter
访问文件FileInputStreamFileOutputStreamFileReaderFileWriter
访问数组ByteArrayInputStreamByteArrayOutputStreamCharArrayReaderCharArrayWriter
访问管道PipedInputStreamPipedOutputStreamPipedReaderPipedWriter
访问字符串  StringReaderStringWriter
缓冲流BufferedInputStreamBufferedOutputStreamBufferedReaderBufferedWriter
转换流  InputStreamReaderOutputStreamWriter
对象流ObjectInputStreamObjectOutputStream  
抽象基类FilterInputStreamFilterOutputStreamFilterReaderFilterWriter
打印流 PrintStream PrintWriter
推回输入流PushbackInputStream PushbackReader 
特殊流DataInputStreamDataOutputStream  

注:表中粗体字所标出的类代表节点流,必须直接与指定的物理节点关联:斜体字标出的类代表抽象基类,无法直接创建实例。


3. 字符缓冲流

BufferedWriter和BufferedRead是为了提高字符流的读写操作,引入的缓冲机制,进行批量字符的读写,加速了单个字符的处理速度。构造器分别需要指定一个Writer对象和Reader对象,可理解为是Writer和Reader的增强器,因为不使用字符缓冲,也可以正常IO,只是效率比较低。

4. 转换流

转换流包含InputStreamReader和OutpuStreamWriter两个类,是连接字节流和字符流的桥梁,实现了两者之间的转换。

InputStreamReader:将字节流转换为字符流输入,FileReader是实现其功能的子类。

OutputStreamWriter:将字节流转换为字符流输出,FileWriter是实现其功能的子类。

什么时候需要使用转换流:

1> 当字节和字符之间有转换动作时;

2> 当处理的流数据,需要编码或解码时.

举例:字符缓冲输出流

Writer fw = new OutputStreamWriter(path, "urf-8");
BufferWriter bw = new BufferWriter(fw);
bw.write(str);
bw.flush();
bw.closw();
当我们使用处理流对字节流或者字符流进行包装时,只需要关闭最上层的处理流即可,java会自动帮我们关闭底层的字节流或者字符流。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值