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();
    }
}
View Code
HelloWorld
HelloWorld
java.io.BufferedInputStream@2a139a55
java.io.PrintStream@15db9742
java.io.PrintStream@6d06d69c
运行结果
  • 输出流自动转换内容类型

打印时,无论任何类型,都会自动转为字符串,然后再进行打印。

    public static void main(String[] args) {
        int i = 9;
        System.out.println(i);
        //这里的int 类型变量,会先转为String 类型,然后再打印。
    }
View Code
  •  扫描仪的阻塞方法:
    public static void main(String[] args) {
        @SuppressWarnings("resource")
        Scanner scanner = new Scanner(System.in);//这一行打断点
        String nextLine = scanner.nextLine();    //这一行打断点
        System.out.println(nextLine);
    }
源码示例

debug 运行:

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

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

原文地址:https://www.cnblogs.com/Mike_Chang/p/6752170.html