A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

io3

© 董将 中级黑马   /  2012-12-7 23:59  /  1302 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

需求二:将一个硬盘上的文本文件打印在控制台上。
        1,明确源和目的:
                源:硬盘的文件,InputStream  or Reader
                目的:控制台。OutputStream or Writer。
                        对于控制台较为特殊,它默认是的目的是System.out.
        2,是不是纯文本数据。
                是!
                源:Reader。
                目的:Writer

        3,明确体系中的对象。
                源:因为是文件,FileReader。
                目的:因为是控制台对应的对象是System.out.为了便于字符操作,
                所以将System.out.转成字符流。

        FileReader fr = new FileReader("a.txt");

        OutputStreamWriter osw = new OutputStreamWriter(System.out);
       

        char[] buf = new char[1024];

        int len = 0;

        while((len=fr.read(buf))!=-1)
        {
                osw.write(buf,0,len);
        }

        为了提高操作效率,加入缓冲技术。

        BufferedReader bufr = new BufferedReader(new FileReader("a.txt"));

        BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));

        String line = null;
        while((line=bufr.readLine())!=null)
        {
                bufw.write(line);
                bufw.newLine();
                bufw.flush();
        }
       


需求三:将键盘录入的数据存储到一个文件中。
        1,明确体系;
                源:InputStream。Reader
                目的:OutputStream ,Writer。
        2,明确纯文本。
                因为键盘录入的都是字节数据,但是该数据都是纯文本。
                所以可以使用字符流。
                源:Reader。
                目的:Writer.

        3,明确体系对象。
                源:因为键盘录入,对应的对象是System.in.是一个字节读取流,
                为了可以使用字符读取流来操作这些数据。可以将其转换成字符读取流。
                那么这时就用到了转换流。InputStreamReader
                目的:因为是一个文本文件。所以可以使用FileWriter。
       
        InputStreamReader isr = new InputStreamReader(System.in);

        FileWriter fw = new FileWriter("a.txt");

        为了提高效率,加入了缓冲技术。

        BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));

        BufferedWriter bufw = new BufferedWriter(new FileWriter("a.txt"));


需求四:读取键盘录入,将录入的信息打印在控制台上。
        1,体系:
                源:InputStream,Reader
                目的:OutputStream ,Writer
        2,纯文本:是!
                源:Reader
                目的:Writer。
        3,对象:
                源:System.in
                目的:System.out.
                因为键盘录入都是纯文本。所以用字符流操作很方便。
                那么就将源和目的都转换成字符流

                InputStreamReader isr = new InputStreamReader(System.in);

                OutputStreamWriter osw = new OutputStreamWriter(System.out);

                需要高效。
                BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
                BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));


注意:在使用写入缓冲区时,记得要进行刷新。flush();


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马