JAVA的IO流学习中(1)

   刚开始适用java的IO流,用来处理键盘输入和socket通讯,好不容易调通了,就以为自己可以总结了。但是遇到新的问题,才知道上一篇文章真是知其然不知其所以然。昨天仔细学习了一篇比较清晰的IO流分析总结文档,对着api的文档推敲一番。又回头自己做了两个可以多终端通讯的例程,才觉得对于数据流的处理,似乎清晰了一些。

(备注:前文提及的文章地址 http://blog.csdn.net/llhhyy1989/article/details/7388059

 

1、对IO流的不同分类

    (1)根据数据流方向  output-输出流 input-输入流

    (2)根据处理数据单位的不同stream-字节流reader/writer-字符流

    (3)根据实现的功能不同 节点流处理流

      我自己的思考方式是,先考虑数据流方向,再考虑需要处理成什么数据单位,在根据读写的便利,考虑不同的处理流

 

2、读写文件或是网络数据时,可能用到的不同流

   字节流输入流(InputStream)

                           节点流类型的:FileInputStream  

                           处理流类型的:BufferedInputStream   DataInputStream

                           我的理解是这样的:FileInputStream 需要直接从源文件读取输入流,而处理类型的则只能处理已有的被命名的流。看下API对类的说明,可以发现 BufferedInputStream 在创建类时,就在内部缓冲区创建了数组,读取后可以得到字节不同的字节数组。而DataInputStream是把原始输入流,转化为一种与平台无关的数据流,读取与写入要互相匹配,这个类中有个readUTF可以直接读取unicode字符串

 

   字节输出流(OutputStream)

                          节点流类型的:FileOutputStream

                          处理流类型的:BufferedOutputStream   DataOutputStream     PrintStream

                          我的理解:前三个类是与字节流输入流相对应的,这里关注一下PrintStream,这个类用于处理一个outputStream,当一个字节数组传入,或则println的任一种方法被调用哦哦个,改行就会自动增加一个回车('\n'),然后自动执行Flush动作

 

    字符输入流(Reader)

                          节点流类型的: FileReader  

                          处理流类型的: BufferedReader    InputStreamReader

                          我的理解:FileReader是直接从源文件获取字符流,而BufferedReader可以把字符流转化为缓冲区模式读取,同时读取方式也便利了很多。InputStreamReader用于把输入的字节流,转化为字符流

 

   字符输出流(Writer)

                         节点流类型的: FileWriter

                         处理流类型的: BufferedWriter   InputStreamWriter  printWriter

                         我的理解:printWriter作用类似于printStream,但是处理对象一个是字节流,一个是字符流

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值