美文网首页
day19-16-IO流(读取转换流)/day19-17-IO流

day19-16-IO流(读取转换流)/day19-17-IO流

作者: 姗婷 | 来源:发表于2020-07-14 07:36 被阅读0次

    需求:
    通过键盘录入数据。
    当录入一行数据后,就将该行数据进行打印。
    如果录入的数据是over,那就停止录入

    通过刚才的键盘录入一行数据并打印其大写,发现其实就是在读一行数据的原理。
    也就是readLine方法,。
    能不能直接使用readLine方法来完成键盘录入的一行数据的读取呢?

    readLine方法是字符流BufferedReader类中的方法。

    而键盘录入的方法是字节流InputStream的方法。
    那么能不能将字节流转称字符流在使用字符流缓冲区的readLine方法呢?

    import java.io.*;
    
    public class TranStreamDemo
    {
        public static void main(String[] args) throws IOException {
            //获取键盘录入对象。
    //        InputStream is = System.in;
    //
    //
    //        将字节流转换成字符流,使用转换流。InputStreamReader
    //        InputStreamReader isr = new InputStreamReader(is);
    //
    //        为了提高效率,将字符串进行缓冲区技术高效操作,使用BufferedReader
    //        BufferedReader br = new BufferedReader(isr);
    
            //键盘录入最常见的写法。
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
    
    
    //        OutputStream ips =System.out;
    //        OutputStreamWriter isw = new OutputStreamWriter(ips);
    //        BufferedWriter bfw = new BufferedWriter(isw);
    
            BufferedWriter bfw= new BufferedWriter(new OutputStreamWriter(System.out));
    
            String line1  = null;
            while((line1=br.readLine())!=null)
            {
                if ("over".equals(line1))
                    break;
                bfw.write(line1.toUpperCase());
                bfw.newLine();
                bfw.flush();
            }
    
    //
    //        String line =null;
    //
    //        while ((line = br.readLine())!=null)
    //        {
    //            if ("over".equals(line))
    //                break;
    //            System.out.println(line.toUpperCase());
    //        }
    //        br.close();
    
        }
    }
    

    相关文章

      网友评论

          本文标题:day19-16-IO流(读取转换流)/day19-17-IO流

          本文链接:https://www.haomeiwen.com/subject/nhazcktx.html