Java基础复习:字符流
2013-05-27 10:09
218 查看
Java中的字符是Unicode编码,是双字节的,即一个字符等于两个字节。
字符流的好处是可以更加便捷的操作文本文件。
(抽象流)字符输出流:Writer 字符输入流:Reader
字节流和字符流的区别:
1)在使用字符流操作的时候会使用到缓冲区,而字节流操作的时候是不会使用到缓冲区的
2)在输出的时候,OutputStream类即使最后没有关闭内容也可以输出。但是如果是Writer的话,则如果不关闭,最后一条内容是无法输出的,因为所有的内容都是保存在了缓冲区之中,每当调用了close()方法就意味着清空缓冲区了。那么可以证明字符流确实使用了缓冲区:
字节流:程序 → 文件
字符流:程序 → 缓冲区 → 文件
3)两者相比,肯定使用字节流更加的方便,而且在程序中像图片、MP3等都是采用字节的方式的保存,那么肯定字节流会比字符流使用的更广泛。
但是需要说明的是,如果要是想操作中文的话,字符流肯定是最好使的。
字符流的好处是可以更加便捷的操作文本文件。
(抽象流)字符输出流:Writer 字符输入流:Reader
package day20.charstream; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.io.Reader; public class Demo1 { public static void main(String[] args) { File file = new File("d:/Test/hi.txt"); read(file);//读出的数据中文乱码 } /** * 读出指定的文件并在屏幕打印出来,并使用自动关闭资源 * @param file */ public static void read(File file){ try ( Reader r = new FileReader(file); ){ char[] buff = new char[1024]; int len = 0; while((len = r.read(buff))!=-1){ String data = new String(buff,0,len); System.out.println(data); } } catch(IOException e) { e.printStackTrace(); } } }
字节流和字符流的区别:
1)在使用字符流操作的时候会使用到缓冲区,而字节流操作的时候是不会使用到缓冲区的
2)在输出的时候,OutputStream类即使最后没有关闭内容也可以输出。但是如果是Writer的话,则如果不关闭,最后一条内容是无法输出的,因为所有的内容都是保存在了缓冲区之中,每当调用了close()方法就意味着清空缓冲区了。那么可以证明字符流确实使用了缓冲区:
字节流:程序 → 文件
字符流:程序 → 缓冲区 → 文件
3)两者相比,肯定使用字节流更加的方便,而且在程序中像图片、MP3等都是采用字节的方式的保存,那么肯定字节流会比字符流使用的更广泛。
但是需要说明的是,如果要是想操作中文的话,字符流肯定是最好使的。
相关文章推荐
- JAVA基础复习二十一-IO流-字符流
- java复习:IO流基础字符流
- java基础复习之五:字符及常用转义字符
- java基础复习二——面向对象一
- Java基础复习第一天
- java 基础复习
- Java_基础—使用指定的码表读写字符
- Java基础复习:IO流(续)
- java基础6:io流对象之字符输入输出流
- Java基础复习(二)
- java基础复习(5)
- 5.JAVA基础复习——JAVA中的static关键字作用与用法
- 黑马程序员--java基础复习之String类StringBuffer及基本数据类型包装类
- 黑马程序员__java基础__IO流(字节流、字符流)
- Java正则表达式基础应用复习
- Java WEB开发实战 之 第一部分:复习必备的基础知识【私塾在线原创】
- java基础复习-数据类型
- Java基础复习之三:单例模式
- Java基础复习之二:运算符,键盘录入,流程控制语句,if语句,三元运算
- 2.2JAVA基础复习——JAVA语言的基础组成运算符和语句