在java1.0中,执行控制台输入的唯一方法是使用字节流。现在仍然可以使用字节流读取控制台输入。但是,对于商业应用程序,读取控制台输入的更好方法是使用面向字符的流。使用面向字符的流可以使程序更容易国际化和维护。
在Java中,控制台输入是通过从System.in读取完成的。为了获得与控制台关联的基于字符的流。可以在BufferedReader对象中封装System.io。BufferedReader支持缓存的输入流。通常使用的构造函数如下所示:
BufferedReader(Reader inputReader)
其中,inputReader是与即将创建的BufferedReader实例链接的流。Reader是抽象类,InputStreamReader是它的一个具体子类,该类将字节转换成字符。为了获得与System.in链接的InputStreamReader对象,使用下面的构造函数:
InputStreamReader(InputStream inputStream)
因为System.in引用InputStream类型的对象,所以可以用作inputStream的参数。我们来看看下面两个例子:
例一:读取字符
为了从BufferedReader对象读取字符,需要使用read()方法。每次调用read()方法都会从输入流读取一个字符,并将之作为整型值返回。
package io; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class BRRead { public static void main(String[] args) throws IOException { char c; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Enter characters,‘q‘ to quit."); do{ c = (char)br.read(); System.out.println(c); }while(c != ‘q‘); } }
时间: 2024-10-10 21:54:52