IO
2016-04-16 02:33
169 查看
本文是笔者在自身学习过程中,对之前产生疑问地方的梳理,以及IO中的知识要点,适合初学者,在没看懂书上讲的内容时,参考理解,查漏补缺
。
I/O 即 输入输出流,如果刚开始学习时,摸不清这个到底是何物,可以想象为你坐在电脑前和别人聊微信,你发出去一个“在么?”,这个“在么?”就是输出流,当你收到一个别人回给你的消息:“我在!”的时候,这个“我在!”就是你的输入流。只是在java的世界里,并不是以“在么?/我在!”这种语言方式来表达,java里我们会把“在么?/我在!”转化为字节流或者字符流来处理。
混淆点:当你有一个文本,你想要把里面的内容输出到屏幕上,你应该使用输出流(FileWriter)还是输入流(FileReader)呢?答案应该是输入流,当你需要资源时,你需要先读取,用输入流读取信息。
字节流:以字节为单位的传输数据的流。(字节即byte)
字符流:以字符为单位传输数据的流。(字符即你看到的汉字,英文字母等。)
inputStream 和outputStream:都是以字节为单位的抽象流类。
inputStream 以字节为单位读取数据。outputStream 以字节为单位向数据源写出数据。
在outputStream中比inputStream中多了一个flush()方法。
Reader和Writer是以字符为单位的抽象流类。分别对应inputStream 和outputStream。
FileInputStream和FileOutputStream是以字节为操作单位的文件输入流和输出流。 注意:一个英文字符是采用一个字节编码的,而一个中文字符是采用2个字节编码的,所以直接用FileInputStream读取中文,用print输出将会得到乱码。
FileInputStream/FileOutputStream用来操作二进制文件比较合适,如图片,声音,视频等。
FileReader和FileWriter,是以字符为操作单位的文件输入流和输出流,适合用来操作文本,比如xxx.TXT文件。
=====================================================================================================
缓冲流:
BufferedInputStream 和BufferedOutputStream。为了提高读写速度,java 使用这些带缓冲功能的流类时,他会先创建一个内部缓冲区数组,在读取字节或者字符时,会先把数据源
。
I/O 即 输入输出流,如果刚开始学习时,摸不清这个到底是何物,可以想象为你坐在电脑前和别人聊微信,你发出去一个“在么?”,这个“在么?”就是输出流,当你收到一个别人回给你的消息:“我在!”的时候,这个“我在!”就是你的输入流。只是在java的世界里,并不是以“在么?/我在!”这种语言方式来表达,java里我们会把“在么?/我在!”转化为字节流或者字符流来处理。
混淆点:当你有一个文本,你想要把里面的内容输出到屏幕上,你应该使用输出流(FileWriter)还是输入流(FileReader)呢?答案应该是输入流,当你需要资源时,你需要先读取,用输入流读取信息。
字节流:以字节为单位的传输数据的流。(字节即byte)
字符流:以字符为单位传输数据的流。(字符即你看到的汉字,英文字母等。)
inputStream 和outputStream:都是以字节为单位的抽象流类。
inputStream 以字节为单位读取数据。outputStream 以字节为单位向数据源写出数据。
在outputStream中比inputStream中多了一个flush()方法。
Reader和Writer是以字符为单位的抽象流类。分别对应inputStream 和outputStream。
FileInputStream和FileOutputStream是以字节为操作单位的文件输入流和输出流。 注意:一个英文字符是采用一个字节编码的,而一个中文字符是采用2个字节编码的,所以直接用FileInputStream读取中文,用print输出将会得到乱码。
FileInputStream/FileOutputStream用来操作二进制文件比较合适,如图片,声音,视频等。
FileReader和FileWriter,是以字符为操作单位的文件输入流和输出流,适合用来操作文本,比如xxx.TXT文件。
=====================================================================================================
缓冲流:
BufferedInputStream 和BufferedOutputStream。为了提高读写速度,java 使用这些带缓冲功能的流类时,他会先创建一个内部缓冲区数组,在读取字节或者字符时,会先把数据源
相关文章推荐
- tomcat7编译
- MongoDB入门教程三[数据类型]
- Linux安装SmartSVN及破解
- HDU 2492 (树状数组)
- php中使用exec,system等函数调用系统命令
- 1.闭包
- 179. Largest Number
- 10005---全文检索引擎Solr系列—–全文检索基本原理
- iOS - 仿射变换
- apache benchmark(ab)对Nodejs服压测POST请求时出现: apr_poll: The timeout specified has expired (70007) 问题的解决办法
- GCdepth散点图绘制
- nginx1.8.1(稳定版本) nginx.conf 配置文件详解二
- 【10】mysql编程
- nginx1.8.1(稳定版本) ngixn.conf 配置文件详解一
- C++ 静态数组([])和动态数组(new)的区别
- React入门教程 - 组件生命周期
- MongoDB入门教程二[MongoDB Shell 简介与使用]
- js单元测试sinonjs库
- 前端自动化测试基础-sinon篇章
- Morgan IT 笔试面试汇总