您的位置:首页 > 职场人生

黑马程序员_io流的理解

2014-07-20 12:19 204 查看
------- android培训java培训、期待与您交流! ----------


刚接触流的时候,总是很难理解什么是流?特别是输入流和输出流。你说它输入流嘛,它是读取数据的,读取明显是取出的,还有输出流,它是写入数据的,写入明显是存进的。那什么才是输入输出流呢?怎么来理解输入输出流?

本人通过不断的探索,对输入输出流有了一些理解。举个例子来说明吧。

当我们在乘车的时候,如果我们的车是静止的,但是有时候我们却觉得是在运动的,或者我们的车是开着的,别人的车也是开着的,但我们会觉得,别人的车是开着,而我们的车是静止的。为什么出现这样的情况呢?对,这就是选择的参考系不同。io流也是一样的道理。

所谓的输入输出流,是相对于内存而言的,也就是说,我们选的参考系应该是内存。这对于我们进一步理解流非常重要。好,我在进一步说明,如下

参考系:内存

输入流:文件是在硬盘中的,当使用输入流读取文件时,就是把文件中的数据读取到内存中,相对于内存来说,是把数据输入到内存中,所以叫输入流。

输出流:数据是在内存中的,当使用输出流写入数据时,就是把内存中的数据写到文件中,相对于内存来说,就是把数据从内存中输出,所以叫输出流。



现在你应该能理解什么是输入输出流了吧?



好了,理解了输入输出流,我们就开始分类了。



流可以分为:字节流和字符流

字节流-->字节输入流InputStream和字节输出流OutputStream

字符流-->字符输入流Reader和字符输出流Writer



字节流和字符流的区别:

字节流可以操作任何格式的文件,比如图片,声音等

字符流只能操作文本格式的文件



字符流:FileReader和FileWriter只能一个一个的读写数据。为了提高读取和写入的效率,引入了缓冲区,BufferedReader和BufferedWriter,可以对一行一行的数据进行读和写

有时候我们在操作文件时,需要将字节流转化成字符流,这时就要用到了InputStreamReader和OutputStreamWriter,这两个家伙可以对字节字符之间进行转换。提高了工作效率。



以上是本人对几个主流的io流的一些潜在的理解,如有什么叙得不够的,请大家多多指教,谢谢!!!

------- android培训java培训、期待与您交流! ----------
 

详情请查看:http://edu.csdn.net/heima
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: