标准输入输出流(System.in,System.out)

1.标准输入流(System.in

首先这个标准输入流的默认输入设备是键盘,数据源是键盘,下面看一个简单的程序。

package fuxi;

import java.io.IOException;
import java.io.InputStream;

public class StandardInputOutput {
    public static void main(String[] args) throws IOException {
        InputStream in = System.in;
        int read = in.read();
        System.out.println((char) read);
    }
}

这一段程序是通过键盘录入读取,但是读取的只有一个。

 要是想读取多个可以设置一个while循环,对录入的进行判断是否是-1.

package fuxi;

        import java.io.IOException;
        import java.io.InputStream;

public class StandardInputOutput {
    public static void main(String[] args) throws IOException {
        InputStream in = System.in;
        int read;
        while ((read = in.read()) != -1)
            //一开始是打印int类型的,用char进行强制转换
            System.out.print((char) read);
    }
}

 在这里可以看见的是录入的字母或者数字都可以正常打印,但是录入要是中文就是不行,出现乱码,因为这个InputStream是字节流


,为了解决这个问题你可以用转换流进行转换。


package fuxi;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class StandardInputOutput {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String input = br.readLine();
        System.out.println(input);
    }
}

 

 在这里可以看见用转换流使用成功了,这里可以输入字母数字中文也可以输入不会乱码,原因在于BufferedReader,他继承于Reader,这是字符输入流。

 


 2.标准输出流(System.out

package fuxi;

import java.io.*;

public class StandardInputOutput {
    public static void main(String[] args) throws IOException {
        PrintStream out = System.out;
        out.print(true);
        out.print(99);
        out.print("我爱你啊你爱我蜜雪冰城甜蜜蜜");
        out.println("------");
        out.println(99);
        out.close();

    }
}

 这是可以看到是换行和没有换行的区别

print就是不换行而println就换行了。

猜你喜欢

转载自blog.csdn.net/weixin_46085718/article/details/120237849