参考:https://blog.csdn.net/zch19960629/article/details/77917739
System.out.println()输出:就是输出流完成的:
实例,用输出流和输入流完成控制台的输入和打印:
package com.example.io;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class ContollerIo {
public static void main(String[] args) {
InputStream inputStream = System.in;
// 第一种:
// byte[] bytes = new byte[1024];
//
// try {
//
// StringBuffer stringBuffer = new StringBuffer();
// int temp01;
// System.out.println("请第1次输入内容 : ");
死循环
// while ( ( temp01 = inputStream.read(bytes))!= -1){
// char c = (char)temp01;
// System.out.println("c=="+c);
// //按块读的话,是读不出相对应的'\n'的字符编码的,只能得到空字符对应的-1值,退不出循环,而且控制台输入读是得不出为-1值的,没有空字符;
// if (c == '\n') break;
// String str = new String(bytes).trim();
// stringBuffer.append(str);
// System.out.println("2次输出的内容是 : " + stringBuffer);
// }
//
// inputStream.close();
//
// }catch (IOException e){
// e.printStackTrace();
// }
// 二:
StringBuffer stringBuffer = new StringBuffer();
try{
System.out.println("请第2次输入内容 : ");
int temp = 0;
while ((temp = inputStream.read()) != -1) {
char c = (char)temp;
System.out.println("c===="+c);
if (c == '\n') break;
stringBuffer.append(c);
}
System.out.println("2次输出的内容是 : " + stringBuffer);
inputStream.close();
}catch (IOException e){
e.printStackTrace();
}
// 输出:
OutputStream outputStream = System.out;
byte[] bytes = ("使用OutputStream输出流在控制台输出字符串: \n"+stringBuffer.toString()).getBytes();
try{
outputStream.write(bytes);
outputStream.close();
}catch (IOException e){
e.printStackTrace();
}
}
}