1、scanner
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
//中文输入时 粘贴上去可以使用 用输入法输入时会连同拼音一同打印出来public class InOrOutTest {
public static void main(String[] args) {
Scanner s = null;
s = new Scanner(System.in); //控制台输入的第一种方法
String str = "start" ;
int i = 0;
List list = new ArrayList();
while(!str.equals("bye!")){
str = s.nextLine();
list.add(i,str);
i++;
}
Iterator it = list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
s.close();
}
}
2.System.in.read(byte [] b)
字节组成字符串
import java.io.IOException;
//不支持中文
public class InOrOutTest {
public static void main(String[] args) throws IOException {
byte buffer[] = new byte[1024];
int count = System.in.read(buffer);
char [] ch = new char[count -2];//最后两位为结束符,去除
for(int i=0;i<count - 2;i++){
ch[i] = (char)buffer[i];
}
String str = new String(ch);
System.out.println(str);
}
}
3.BufferReader
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
//中文输入时 粘贴上去可以使用 用输入法输入时会连同拼音一同打印出来
public class InOrOutTest {
public static void main(String[] args) throws IOException {
BufferedReader s =new BufferedReader(new InputStreamReader(System.in));//控制台输入的第二种方法
String str = "start" ;
int i = 0;
List list = new ArrayList();
while(!str.equals("bye!")){
str = s.readLine();
list.add(i,str);
i++;
}
Iterator it = list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
s.close();
}
}
4、console
import java.io.Console;
import java.io.IOException;
/**
* 虚拟机是否具有控制台取决于底层平台,还取决于调用虚拟机的方式。如果虚拟机从一个交互式命令行开始启动,且没有重定向标准输入和输出流,那么其控制台将存在,
* 并且通常连接到键盘并从虚拟机启动的地方显示。如果虚拟机是自动启动的(例如,由后台作业调度程序启动),那么它通常没有控制台。
* 通过上面的文档说明可以看出,在使用 IDE 的情况下,是无法获取到Console实例的,原因在于在 IDE
* 的环境下,重新定向了标准输入和输出流,也是就是将系统控制台上的输入输出重定向到了 IDE 的控制台中。因此,在 IDE
* 中不能使用这个程序,而Test1和Test3就没有这种限制
*
* @author Administrator
*
*/
public class InOrOutTest {
public static void main(String[] args) throws IOException {
Console console = System.console();
if (console == null) {
throw new IllegalStateException("不能使用控制台");
}
String str = console.readLine();
System.out.println(str);
}
}