美文网首页Java
Java IO流读取键盘录入

Java IO流读取键盘录入

作者: 一亩三分甜 | 来源:发表于2019-09-21 11:01 被阅读0次

字符流

FileReader
FileWriter

BufferedReader
BufferedWriter

字节流

FileInputStream
FileOutputStream

BufferedInputStream
BufferedOutputStream

读取键盘录入

System.out:对应的是标准输出设备:控制台。
System.in:对应的标准输入设备:键盘。
需求:
通过键盘录入数据。
当录入一行数据后,就将该行数据进行打印。
如果录入的数据是over,那么停止录入。

import java.io.IOException;
import java.io.InputStream;

public class ReadIn {
    public static void main(String[] args) throws IOException{
        InputStream in = System.in;
        int by = in.read();
        int by1 = in.read();
        int by2 = in.read();

        System.out.println(by);
        System.out.println(by1);
        System.out.println(by2);
    }
}
//输出
abc
97
98
99

import java.io.IOException;
import java.io.InputStream;

public class ReadIn {
    public static void main(String[] args) throws IOException{
        InputStream in = System.in;
        System.out.println('\r'+0);
        System.out.println('\n'+0);
    }
}
//输出
13
10
0.gif

通过刚才的键盘录入一行数据并打印其大写,发现其实就是读一行数据的原理。也就是readLine方法。能不能直接使用readLine方法来完成键盘录入的一行数据的读取呢?
readLine方法是字符流BufferedReader类中的方法。而键盘录入的read方法是字节流InputStream的方法,那么能不能将字节流转成字符流在使用字符流缓冲区的readLine方法呢?

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class TransStreamDemo {
    public static void main(String[] args) throws IOException
    {
        //获取键盘录入对象
        InputStream in = System.in;
        //将字节流对象转成字符流对象,使用转换流。InputStreamReader
        InputStreamReader isr = new InputStreamReader(in);
        //为了提高效率,将字符创进行缓冲区技术高效操作。使用BufferedReader
        BufferedReader bufr = new BufferedReader(isr);
        String line = null;
        while ((line = bufr.readLine())!=null)
        {
            if ("over".equals(line))
                break;
            System.out.println(line.toUpperCase());
        }
        bufr.close();
    }
}
0.gif
import java.io.*;
public class TransStreamDemo0 {
    public static void main(String[] args) throws IOException
    {
        //获取键盘录入对象
        InputStream in = System.in;
        //将字节流对象转成字符流对象,使用转换流。InputStreamReader
        InputStreamReader isr = new InputStreamReader(in);
        //为了提高效率,将字符创进行缓冲区技术高效操作。使用BufferedReader
        BufferedReader bufr = new BufferedReader(isr);
        
        OutputStream out = System.out;
        OutputStreamWriter osw = new OutputStreamWriter(out);

        String line = null;
        while ((line = bufr.readLine())!=null)
        {
            if ("over".equals(line))
                break;
            osw.write(line.toUpperCase()+"\r\n");
            osw.flush();
        }
        bufr.close();
    }
}
0.gif
import java.io.*;

public class TransStreamDemo0 {
    public static void main(String[] args) throws IOException
    {
        //获取键盘录入对象
        InputStream in = System.in;
        //将字节流对象转成字符流对象,使用转换流。InputStreamReader
        InputStreamReader isr = new InputStreamReader(in);
        //为了提高效率,将字符创进行缓冲区技术高效操作。使用BufferedReader
        BufferedReader bufr = new BufferedReader(isr);

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

        String line = null;
        while ((line = bufr.readLine())!=null)
        {
            if ("over".equals(line))
                break;
            bufw.write(line.toUpperCase());
            bufw.newLine();
            bufw.flush();
        }
        bufr.close();
    }
}
0.gif

以上代码可以简写为

import java.io.*;

public class TransStreamDemo0 {
    public static void main(String[] args) throws IOException
    {   
        BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
        
        BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));

        String line = null;
        while ((line = bufr.readLine())!=null)
        {
            if ("over".equals(line))
                break;
            bufw.write(line.toUpperCase());
            bufw.newLine();
            bufw.flush();
        }
        bufr.close();
    }
}

相关文章

  • Java IO流读取键盘录入

    字符流 FileReaderFileWriter BufferedReaderBufferedWriter 字节流...

  • 【JavaSE(十三)】JavaIO流(中)

    1 IO流 1.1 IO流概述 Java中使用 IO流 来读取和写入,读写设备上的数据、硬盘文件、内存、键盘等等,...

  • IO与流 -- 打印流与序列流

    使用流读取键盘输入 标准键盘录入代码 BufferedReader bufr = new BufferedRead...

  • 2021-09-07 IO流(读取键盘录入)

    字符流: 字节流: 读取键盘录入: System.out:对应标准输出设备:控制台System.in:对应标准输入...

  • Guava | IO

    一、Java IO 基于流的读取方式:只能顺序读取,不能随机读取

  • Java总结IO之总集篇

    Java总结IO四篇: 一、字符流概览 读入流I(用于读取数据源--内存、磁盘、键盘) 输出流O(将数据源引向目的...

  • java35(IO输入与输出--03转换流)

    读取键盘录入: 在说转换流之前,我们首先调用InputStream类,来读取键盘录入并将其转化为大写字体 ...

  • 读取键盘录入

    字节流: 字符流: 读取键盘录入: windows中的回车符:ASCII值 /r: 13/n: 10 需求: 从键...

  • Java基础之IO流

    ##Java基础之IO流IO流常用几个类的关系如下: 字节流 字节输入流FileInputStream 读取文件用...

  • Java IO学习笔记(结合了他人的博客)

    Java中使用IO(输入输出)来读取和写入,读写设备上的数据、硬盘文件、内存键盘。根据数据的走向分为输入流和输出流...

网友评论

    本文标题:Java IO流读取键盘录入

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