侃侃尔雅
从控制台读取数据BufferedReader是同步的,因此可以安全地从多个线程对BufferedReader进行读取操作。可以指定缓冲区大小,也可以指定默认大小(8192)可以使用。对于大多数用途,缺省值都足够大。读行() « 只需从流或源逐行读取数据。一条线被下列任何一个人视为终止:\n,\r(或)\r\nScanner使用分隔符模式将其输入拆分为令牌,默认情况下该模式与空格(\s)匹配,并由Character.isWhitespace.« 在用户输入数据之前,扫描操作可能会阻塞,等待输入。 « 使用扫描仪(缓冲器大小=1024)如果您想从流中解析特定类型的令牌。 « 然而,扫描器并不是线程安全的。它必须在外部同步。Next()从这个扫描器中查找并返回下一个完整的令牌。nextInt()扫描输入的下一个令牌为int。电码String name = null;int number;java.io.BufferedReader in = new BufferedReader(new InputStreamReader(System.in));name = in.readLine();
// If the user has not entered anything, assume the default value.number = Integer.parseInt(in.readLine());
// It reads only String,and we need to parse it.System.out.println("Name " + name + "\t number " + number);
java.util.Scanner sc = new Scanner(System.in).useDelimiter("\\s");name = sc.next();
// It will not leave until the user enters data.number = sc.nextInt();
// We can read specific data.System.out.println("Name " + name + "\t number " + number);
// The Console class is not working in the IDE as expected.java.io.Console cnsl = System.console();if (cnsl != null) {
// Read a line from the user input. The cursor blinks after the specified input.
name = cnsl.readLine("Name: ");
System.out.println("Name entered: " + name);}流的输入和输出Reader Input: Output:Yash 777 Line1 = Yash 777
7 Line1 = 7Scanner Input: Output:Yash 777 token1 = Yash
token2 = 777