java 标准输出流、标准错误输出流、标准输入流及扫描仪

package com.mydemo.controller;

import java.util.Scanner;

public class HelloWorld {
    public static void main(String[] args) {
        System.err.println("HelloWorld");
        System.out.println("HelloWorld");

        System.out.println(System.in);
        System.out.println(System.out);
        System.out.println(System.err);

        Scanner scanner = new Scanner(System.in);
        String nextLine = scanner.nextLine();
    }
}

运行结果:

HelloWorld
HelloWorld
java.io.Buff[email protected]
[email protected]
[email protected]

扫描仪的阻塞方法:

 1 package com.mydemo.controller;
 2
 3 import java.util.Scanner;
 4
 5 public class HelloWorld {
 6     public static void main(String[] args) {
 7         @SuppressWarnings("resource")
 8         Scanner scanner = new Scanner(System.in);//这一行打断点
 9         String nextLine = scanner.nextLine();    //这一行打断点
10         System.out.println(nextLine);        //这一行打断点
11     }
12 }

debug 运行:

直到第9行,按F6 就不往下走了,控制台输入内容才会往下走。

所以scanner对象的nextLine()是一个阻塞方法。

时间: 04-23

java 标准输出流、标准错误输出流、标准输入流及扫描仪的相关文章

java 标准输出与标准错误 out与 err 区别 用法 联系 java中的out与err区别 System.out和System.err的区别 System.out.println和System.err.println的区别 Java重定向System.out和System.err

操作系统一般都有三个标准文件描述符:标准输入,标准输出,标准出错 这是操作系统的一种抽象表达 不同的语言需要有不同的具体表达方式,当然也不过是另一种包装抽象 比如c++的  cin cout cerr Java中则是的System.in,System.out,System.err 示例 输出结果: ---------------- ---------------- 可以看得出来: 运行多次  err的打印信息位置是不固定的 看下JDK文档:   /** * The "standard"

文件IO详解(四)---标准输入、标准输出和标准错误

每个进程都会默认打开3个文件描述符,即0.1.2.其中0代表标准输入流.1代表标准输出流.2代表标准错误流.通常标准输入流对应着键盘的设备文件.标准输出流和错误流对应着显示器的设备文件.在编程中通常使用宏STDIN_FILENO.STDOUT_FILENO和STDERR_FILENO分别来代表0,1,2. 要注意一点: 0.1.2这三个文件描述符对应的是标准输入流.标准输出流和标准错误流而不是键盘设备文件和显示器设备文件.只是默认标准输入流对应着键盘设备文件,标准输出和错误对应着显示器设备文件.

js,java,浮点数运算错误及应对方法

js,java,浮点数运算错误及应对方法 一,浮点数为什么会有运算错误 IEEE 754 标准规定了计算机程序设计环境中的二进制和十进制的浮点数自述的交换.算术格式以及方法. 现有存储介质都是2进制.2进制的进制基数是2,那么一个数字只要被因素包含大于2的质数的数除,都会产生无限循环小数.无限循环小数和无理数都无法,和非无限循环的有理数一起用同一种方式存储到存储介质上的同时还保持计算的兼容性. 对于无限循环小数,可以设计一种格式存储到介质上,但是同时又要和非无限循环的有理数能够计算,效率应该会变

node.js 标准/错误输出 和 process.exit

node.js中,各种模块有一种标准的写法: this._process.exec(command, options, function (err, stdout, stderr) { callback(err, stdout, stderr); }) 这里说的标准,是指回调函数,一般有err作为第一个参数,然后是具体的数据. 写服务器程序的时候,或多或少会用到child_process这个模块,而这个模块的用法正如上边代码所示. 例如调用一个shell命令删除文件,可以这样: child_pr

Linux下C编程-----文件操作(1) 通过系统调用简单操作标准输入、标准输出、标准错误

Linux的 C系统调用操作  ,下面我们就来练习下 简单的系统调用操作 read系统调用测试 /************************************************************************* > File Name: read.c > Author: > Mail: > Created Time: Tue 10 Feb 2015 01:23:58 AM PST **********************************

linux重定向标准输入输出,标准错误

标准输入是文件描述符0.它是命令的输入,缺省是键盘,也可以是文件或其他命令的输出.标准输出是文件描述符1.它是命令的输出,缺省是屏幕,也可以是文件.标准错误是文件描述符2.这是命令错误的输出,缺省是屏幕,同样也可以是文件. 一般程序的错误和状态输出都属于标准错误. 重定向标准输出: ls >ls.out 重定向标准输入: sort < name.txt   // sort命令的输入是采用重定向的方式给出的,不过也可以直接把相应的 重定向标准错误: grep color file 2> r

标准输入、标准输出、标准错误

(1).标准输入为 代码为0(2).标准输出为 代码为1(3).标准错误为 代码为2 重定向标准输出> 将命令输出写入文件或设备. < 从文件而不是从键盘或句柄读入命令输入 >> 将命令输出添加到文件末尾而不删除文件中已有的信息 cat passwd | awk -F: '{print $1}' | sort    >sort.out 重定向标准输入cat >> alvin.log <<EOF> my name is alvin> my n

Eclipse--Maven--Dynamic Web Module 3.0 requires Java 1.6 错误

用Eclipse创建Maven webapp项目时报错Dynamic Web Module 3.0 requires Java 1.6 错误 其实这个问题就是两者不匹配的问题Dynamic Web Module 和JDK 版本不匹配,具体问题看problems 两种方法解决, (1)上面Java 是1.4的,按向下三角形换用低版本的Dynamic Web Module,我试了一下,换成2.4以下就可以啦 (2)也可以根据Dynamic Web Module3.0为匹配对象,更换Java为1.6及

JAVA程序调试错误集

这边文章是我记录调试JAVA程序的错误,每次遇到都会更新! 错误1.HTTP Status 405 - HTTP method GET is not supported by this URL 解决办法:删除super.doGet(request, response); 错误2. HTTP Status 404 - /Simple/GetAddress ------------------------------------------------------------------------