Java转换流&&字节流和处理流的典型配合

来源:互联网 发布:c语言 while break 编辑:程序博客网 时间:2024/06/06 12:24
转换流:
什么是转换流?
        转换流,可以实现字节数据到字符数据的转换。常用的有:inputstreamReader和OutStreamWriter

怎么使用转换流?
        和之前的处理流一样,都是套装在现有字节流之上。实现相应的功能!

字节流和处理流如何配合?
基本的思想就是,原来的流不能够很好的处理数据,按照需求,套接相应的处理流,完成需求;
就有可能出现不断地套接套接再套接。

····下图详解inputstreamReader和OutStreamWriter,后面有实现。


试验一:转换流----输入:将字节流输入,变为字符型输入

import java.io.*;public class TestTransport {      public static void main(String[] args) throws Exception {    //  1:              OutputStreamWriter r = new OutputStreamWriter   ((new FileOutputStream("D:/0000/iloveyou.txt")));      r.write("晚上好");//    该类型流,也需要flush      r.flush();      r.close();//    2:          r = new OutputStreamWriter(                        new FileOutputStream("D:/0000/iloveyou.txt", true),                        "ISO8859_1");      r.write("mircosoftibmsunapplehp");      r.flush();                  }}



1:用转换流。将字符串输出到文件中去。(因为之前的outputstream不支持字符串输出)
2:同上,只不过在文件原来的内容上,加入要输出的内容,而不是清空原来的内容再输入。
写法:
    其实很简单,就是在原来的字节流基础上,套接转换流,对转换流进行相应的操作。


实验二:一个很典型的处理流和字节流的配合、
基本的思想就是,原来的流不能够很好的处理数据,按照需求,套接相应的处理流,完成需求;
就有可能出现不断地套接套接再套接。
import java.io.*;public class TestTaojie {      public static void main(String[] agrs) throws Exception{//          System.in的套接InputStreamReader,完成字节向字符的转换。//          再有BufferedReader的套接,完成读一行的工作            InputStreamReader r = new InputStreamReader(System.in);            BufferedReader rr= new BufferedReader(r);                        String s = null;            s = rr.readLine();              System.out.println(s.toUpperCase());      }      }

图解:


该程序实现的是,从命令行读入数据(System.in),但是该数据是字节流型的,而命令行输入的是字符型的,所以需要转换。经过InputStreamReader的处理,再接着,想实现按行读入数据,现有的InputStreamReader显然已经不能满足要求,所以,再次套接BufferedReader实现按行输入数据的操作。

原创粉丝点击