IO流总结(Java篇)

Java的IO功能是十分强大而灵活的,涉及标准输入输出、文件的操作、网络上的数据流等等。在Java的IO中,流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接。类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。如下图: 

 

    Java中的流分为两种,一种是字节流,另一种是字符流(Unicode字符),分别由四个抽象类来表示(每种流包括输入和输出两类):InputStream,OutputStream,Reader,Writer。Java中其他多种多样变化的流均是由它们派生出来的: 

 

1) FileInputStream:从文件系统中的某个文件中获得输入字节
2) PipedInputStream:管道输入流提供要写入管道输出流的所有数据字节,主要在线程中使用
3) FilterInputStream:实现各类过滤流
     3.1) LineNumberInputStream:已过时
     3.2) DataInputStream:输入流中读取基本Java数据类型
     3.3) BufferedInputStream:缓冲输入
     3.4) PushbackInputStream:很少用到,一般用于编译器开发
4) ByteArrayInputStream:把内存中的一个缓冲区作为输入流使用
5) SequenceInputStream:将多个输入流进行逻辑串联
6) StringBufferInputStream:把一个String对象作为输入流
7) ObjectInputStream:对使用 ObjectOutputStream 写入的基本数据和对象进行反序列化 

 

1) FileOutputStream:将字节数据写入文件
2) PipedOutputStream:管道输出流是管道的发送端,主要在线程中使用
3) FilterOutputStream:实现各类过滤流
     3.1) DataOutputStream:将基本Java数据类型写入输出流
     3.2) BufferedOutputStream:实现缓冲的输出流
     3.3) PrintStream:产生格式化输出
4) ByteArrayInputStream:将输出流数据写入一个byte数组缓冲区中
5) ObjectInputStream:对基本数据类型和支持Serializable接口的对象进行序列化 



 

1) CharArrayReader:实现一个可用作字符输入流的字符缓冲区
2) InputStreamReader: 实现字节流向字符流动转换
     2.1) FileReader:用来读取字符文件的便捷类
3) FilterReader:各类过滤流
     3.1) BufferedReader:缓冲字符输入流(可以认为是过滤流,更合理)
     3.2) LineNumberReader:跟踪行号的缓冲字符输入流
     3.3) PushBackReader:很少用到,一般用于编译器开发
4) PipedReader:基于字符的管道通信流
5) StringReader:其源为一个字符串的字符流

 

1) CharArrayWriter:实现一个可用作输出的字符缓冲区
2) OutputStreamReader:实现字节流向字符流动转换
     2.1) FileWriter:用来写入字符文件的便捷类
3) FilterWriter:各类过滤流
     3.1) BufferedWriter:基于字符的缓冲输出流(可以认为是过滤流,更合理)
4) PipedWriter: 基于字符的管道通信流
5) StringWriter:一个字符流,可以用其回收在字符串缓冲区中的输出来构造字符串
6) PrintWriter:向文本输出流打印对象的格式化表示形式


RandomAccessFile 类
1) 支持对随机访问文件的读取和写入
2) 在产生一个对象时,可指明要打开的文件的性质:r,只读;w,只写;rw可读写
3) 可以直接跳到文件中指定的位置

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值