全部博文(168)
分类: LINUX
2010-09-09 08:48:27
Java中的标准输入方法
三种方法实现标准输入(即从键盘获得输入)
一、System.in
Java在java.lang.System类中声明了3个常量in、out、err,用于实现标准输入/输出功能。
声明如下:
public final class System extends Object
{
public final static InputStream in = nullInputStream(); //standard input constant
public final static PrintStream out = nullPrintStream(); //standard output constant
public final static PrintStream err = nullPrintStream(); //standard error output constant
}
InputStream类的read()方法可以从键盘接收数据,PrintStream类的print()和println()方法可以向屏幕输出数据。
由于read()方法声明要抛出IOException异常,调用它的函数要处理该异常。
实例:
//stdinout1.java
import java.io.*;
public class stdinout1
{
//System.in can handle the input from keyboard
public static void main(String[] args) throws IOException
{
System.out.print("Input: ");
byte[] buffer=new byte[512];
int count=System.in.read(buffer);
System.out.print("Output(ASCII): ");
for (int i=0; i<count; i++)
System.out.print(" "+buffer[i]);
System.out.println();
System.out.print("Output(character): ");
for (int i=0; i<count; i++)
System.out.print(" "+(char)buffer[i]);
System.out.println();
System.out.println("Count: "+count);
}
}
二、Scanner
System.in只能以字符的形式取得输入,用java.util.Scanner类的方法可以取得字符串或者数字。
先用System.in构造Scanner类,用Scanner的next(),nextInt(),nextFloat(),nextBoolean()等方
法取得输入。Scanner默认以空白符分割输入串。如果取输入的函数与实际输入类型不匹配,会产
生一个InputMismatchException异常。
实例:
//stdinout2.java
import java.io.*;
import java.util.*;
public class stdinout
{
//Scanner
public static void main(String[] args)
{
Scanner scanner=new Scanner(System.in);
System.out.print("please input your name: ");
System.out.printf("Hello! %s!\n", scanner.next());
System.out.print("please input a integer number: ");
System.out.printf("What you input is: %d!\n", scanner.nextInt());
}
}
三、BufferedReader
用BufferedReader可以从标准输入获得包括空白符的字符串。接受一个java.io.Reader对象构建,
由于InputStreamReader继承了Reader,例子中用它构建BufferedReader对象。BufferedReader的
readLine()方法必须处理IOException异常。
实例:
//stdinout3.java
import java.io.*;
public class stdinout
{
//BufferedReader
public static void main(String[] args) throws IOException
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.print("Please input texts(including blanks):");
String text=br.readLine();
System.out.println("what you input is: "+text);
}
}