本帖最后由 黑马李昂 于 2013-8-3 23:15 编辑
- InputStream in = System.in;
- InputStreamReader isr = new InputStreamReader(in);
- BufferedReader bufr = new BufferedReader(isr);
- OutputStream out = System.out;
- OutputStreamWriter osw = new OutputStreamWriter(out);
复制代码 字节流与字符流主要的区别是他们的的处理方式一个是以流的方式输入和输出的 一个是以字节的方式输入输出字节流是最基本的,所有的InputStream和OutputStream的子类都是,主要用在处是按字节来处理的但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化这两个之间InputStreamReader,OutputStreamWriter来关联,
实际上是通过byte[]和String来关联在实际开发中出现的汉字问题实际上都是在字符流和字节流之间转化不统一而造成的在从字节流转化为字符流时,实际上就是byte[]转化为String时,public String(byte bytes[], String charsetName)有一个关键的参数字符集编码,通常我们都省略了,那系统就用操作系统的lang而在字符流转化为字节流时,实际上是String转化为byte[]时,byte[] String.getBytes(String charsetName)也是一样.
java没有提供将字符流转换成字节流的转换流,字节流比字符流的使用范围更广,字节流转换成字符流只是为了处理文本内容更方便, 所以没必要把字符流转换成字节流.
希望与楼主共同学习{:soso_e100:}
|