在Java字符终端上获取输入有三种方式
1、使用java.io.BufferedReader和java.io.InputStreamReader;
2、java.util.Scanner (JDK版本>=1.5)
3、java.io.Console(JDK版本>=1.6),特色:能不回显密码字符
无论哪种方法,都需要
java.lang.System.in来创建输入流
方法一示例:
public class Sandbox4 extends Sandbox2{
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = null;
while(true){
try {
str = br.readLine();
}catch(IOException e){
e.printStackTrace();
}
if(str.equals("END"))break;
System.out.print(str);
}
}
}方法二示例:
public class Sandbox4 extends Sandbox2{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = null;
while(true){
str = scanner.nextLine(); //读取一行
//str = scanner.next(); //读取下一个数据,空格为分隔符
if(str.equals("END"))break;
System.out.println(str);
}
scanner.close();
}
}方法三示例:
注意,在eclipse等IDE下不能使用这种该方法,因为JVM不是在命令行中被调用,输入输出被重定向了。
java写标准输出也有如下形式
public class Sandbox4 extends Sandbox2{
public static void main(String[] args) {
Console console = System.console();
if (console == null) {
throw new IllegalStateException("Console is not available!");
}
String str = null;
while(true){
str = console.readLine("请输入");
if("END".equals(str))break;
System.out.println(str);
}
}
}