java中io字符流与字节流异同学习笔记
来源:互联网 发布:智能营销软件 编辑:程序博客网 时间:2024/06/14 22:57
1:字节流: stream结尾都是字节流 ; 字符流: reader和writer结尾都是字符流
字节流与字符流的桥梁为OutputStreamWriter、InputStreamReader
缓冲字符流的为BufferedWriter、BufferedReader
相同点:
InputStream,OutputStream,Reader,writer都是抽象类。所以不能直接new,要使用他们对应的子类实现。
字节流与字符流的区别
1、字节流在操作的时候本身是不会用到缓冲区(内存)的,是与文件本身直接操作的,而字符流在操作的时候是使用到缓冲区的
2、字节流在操作文件时,即使不关闭资源(close方法),文件也能输出,但是如果字符流不使用close方法的话,则不会输出(写入)任何内容,说明字符流用的是缓冲区,并且可以使用flush方法强制进行刷新缓冲区,这时才能在不close的情况下输出内容
3、Reader类的read()方法返回类型为int :作为整数读取的字符(占两个字节共16位),范围在 0 到 65535 之间(0x00-0xffff),如果已到达流的末尾,则返回 -1
inputStream的read()虽然也返回int,但由于此类是面向字节流的,一个字节占8个位,所以返回 0 到 255 范围内的 int 字节值。如果因为已经到达流末尾而没有可用的字节,则返回值 -1。因此对于不能用0-255来表示的值就得用字符流来读取!比如说汉字.
4、字节流与字符流主要的区别是他们的的处理方式
字节流:处理字节和字节数组或二进制对象;
字符流:处理字符、字符数组或字符串。
那开发中究竟用字节流好还是用字符流好呢?
1、字符(Reader和 Writer):中文,字符是只有在内存中才会形成的,操作字符、字符数组或字符串,
2、字节(InputStream和OutputStream):音频文件、图片、歌曲,所有的硬盘上保存文件或进行传输的时候,操作字节和字节数组或二进制对象,
*如果要java程序实现一个拷贝功能,应该选用字节流进行操作(可能拷贝的是图片),并且采用边读边写的方式(节省内存)。
5:InputStreamReader和OutputStreamWriter:
优秀博客引用:http://blog.csdn.net/liuhenghui5201/article/details/8292552
- java中io字符流与字节流异同学习笔记
- Java IO学习笔记之字节流和字符流
- 【JAVA IO】_字节流与字符流笔记
- 【JAVA IO】_字节流与字符流笔记
- Java IO学习笔记(三):字节流与字符流
- Java IO学习笔记(三):字节流与字符流
- Java IO学习笔记(三):字节流与字符流
- Java IO学习笔记(三):字节流与字符流
- java笔记→IO流中字节,字符的输入与输出(文件)
- Java IO:字节流与字符流
- Java IO字符流与字节流
- JAVA IO-----字节流与字符流
- java IO流:字节与字符区别
- Java学习笔记(55)----------字节流与字符流
- Java IO学习笔记:字节流
- Java IO学习笔记:字节流
- Java IO学习笔记:字节流
- [学习笔记]Java IO之字节流
- redis数据结构详解之Hash(四)
- js表单验证,如果不为空时自动改变提交按钮的背景色
- Cassandra学习笔记(2)
- 技术干货:工欲善其事,必先利其器 阿里云数据库系列谈之一
- 杀手机器人的漫长过程继续
- java中io字符流与字节流异同学习笔记
- linux系统修改文件的读写执行rwx的权限
- mx280调试笔记
- Elastic-Job——分布式定时任务框架
- git cherry-pick 小结
- C++ 中 ZeroMemory、memset 危险需慎用
- Library not found for -IMobClickLibrary
- MT6735[CTS Verifier][Test Method] Device Only Mode Test
- byte转KB、MB、GB等...