Java没有像标准C的函数scanf()或C++输入操作符那样的统一的控制台输入方法 。Java中,控制台输入由从System.in读取数据来完成 。为获得属于控制台的字符流,在BufferedReader对象中包装System.in 。BufferedReader 支持缓冲输入流查看批注 。它最常见的构造函数如下:
BufferedReader(Reader inputReader)
这里,inputReader是链接被创建的BufferedReader实例的流 。Reader是一个抽象类 。它的一个具体的子类是InputStreamReader,该子类把字节转换成字符查看批注 。为获得链接System.in的一个InputStreamReader的对象,用下面的构造函数:
InputStreamReader(InputStream inputStream)
因为System .in引用了InputStream 类型的对象,它可以用于inputStream 。综上所述,下面的一行代码创建了与键盘相连的BufferedReader对象 。
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
当该语句执行后,br是通过System.in生成的链接控制台的字符流 。
2.1 读取字符
从BufferedReader读取字符,用read() 。这里所用的read()版本如下:
int read( ) throws IOException
该方法每次执行都从输入流读取一个字符然后以整型返回 。当遇到流的末尾时它返回-1 。可以看到 , 它要引发一个IOException异常 。下面的例程演示了read()方法,从控制台读取字符直到用户键入“q”:
// Use a BufferedReader to read characters from the console.
import java.io.*;
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.");
// read characters
do {
c = (char) br.read();
System.out.println(c);
} while(c != 'q');
}
}
下面是程序运行:
Enter characters, 'q' to quit.
123abcq
1
2
3
a
b
c
q
2.2 读取字符串
从键盘读取字符串,使用readLine() 。它是BufferedReader 类的成员 。它的通常形式如下:
String readLine( ) throws IOException
它返回一个String对象 。下面的例子阐述了BufferedReader类和readLine()方法;程序读取和显示文本的行直到键入“stop”:
// Read a string from console using a BufferedReader.
import java.io.*;
class BRReadLines {
public static void main(String args[])
throws IOException
{
// create a BufferedReader using System.in
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
String str;
System.out.println("Enter lines of text.");
System.out.println("Enter 'stop' to quit.");
do {
str = br.readLine();
System.out.println(str);
} while(!str.equals("stop"));
}
}
下面的例程生成了一个小文本编辑器 。它创建了一个String对象的数组,然后依行读取文本,把文本每一行存入数组 。它将读取到100行或直到按“stop”才停止 。该例运用一个BufferedReader类来从控制台读取数据 。
// A tiny editor.
import java.io.*;
class TinyEdit {
public static void main(String args[])
throws IOException
{
// create a BufferedReader using System.in
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
String str[] = new String[100];
System.out.println("Enter lines of text.");
System.out.println("Enter 'stop' to quit.");
for(int i=0; i100; i++) {
str[i] = br.readLine();
if(str[i].equals("stop")) break;
}
System.out.println("\nHere is your file:");
// display the lines
for(int i=0; i100; i++) {
if(str[i].equals("stop")) break;
System.out.println(str[i]);
推荐阅读
- 移动直播设备多少钱,移动直播设备全套都有什么
- 百度如何推广软文,百度怎么推广app
- vmware虚拟机镜像,vmware虚拟机镜像格式
- stem建筑经营游戏,建筑经营类游戏排行
- c语言解线性方程组函数 c++线性方程组求解
- gis如何多选属性,gis属性表选择多个要素
- 别墅酒店拍照软件免费ios,酒店别墅设计图
- 快手直播伴侣模板怎么没有,快手直播伴侣直播为什么没有声音
- vb.net调用一个按键 vb单击窗体代码