packagecom.test.Log4j;importjava.io.BufferedReader;importjava.io.Console;importjava.io.IOException;importjava.io.InputStreamReader;importjava.util.Scanner;importjavax.swing.JOptionPane;importjunit.framework.TestCase;public class InputTest extendsTestCase {/*** 利用字节输入类*/
public voidtestByteReader(){
String s= "";
System.out.println("ByteReader方式输入");byte[] readIn = new byte[50];int count = 0;try{
System.out.println("you input:");
count=System.in.read(readIn);
}catch(Exception e){
e.printStackTrace();
}
System.out.println(new String(readIn, 0, count));
}/*** 利用字符输入流*/
public voidtestBufferedReader(){
String s= "";
BufferedReader br= new BufferedReader(newInputStreamReader(System.in));
System.out.println("BufferReader方式输入");try{
s=br.readLine();
}catch(IOException e) {
e.printStackTrace();
}
System.out.println(s);
}/*** 扫描器类(Scanner)从控制台中读取字符串*/
public voidtestScanner(){
String s= "";
Scanner sc= newScanner(System.in);
System.out.println("Scanner方式输入");
s=sc.next();
System.out.println(s);
}/*** 对话框输入数据*/
public voidtestJOptionPane(){
System.out.println("JOptionPane方式输入");
String name= JOptionPane.showInputDialog("what is your name?");
System.out.println(name);
}public voidtestConsole(){/**jdk1.6新功能
* Java要与Console进行交互,不总是能得到可用的Java
* Console类的。一个JVM是否有可用的Console,依赖于底层平台和JVM如何被调用
* 。如果JVM是在交互式命令行(比如Windows的cmd
* )中启动的,并且输入输出没有重定向到另外的地方,那么就我们可以得到一个可用的Console实例。
* 当你有Eclipse或NetBean中运行以上代码时Console中将会有以下文字输出: Console is unavailable.
*
* 表示Java程序无法获得Console实例,是因为JVM不是在命令行中被调用的,或者输入输出被重定向了。*/Console console=System.console();if (console == null) {throw new IllegalStateException("不能使用控制台");
}
String s= console.readLine("输入你的参数");
System.out.println(s);
}public static voidmain(String[] args){/*** 主函数参数输入*/System.out.println(args[0]);
}
}