标准输入输出流
System.in:
标准输入流是InputStream的子类对象,字节输入流,只不过是jvm给定的唯一一个从键盘控制条读入的流。
public static final InputStream in
此流供全局使用,尽量不要关闭,只要程序中有地方关闭该流,其他地方将不能使用。
自己封装键盘录入:
字节流:
字符流:
字符流一次读一行:
System.out:
字节输出流是PrintStream类型的字节输出流。只不过是jvm给定的一个唯一指向控制台的流。
此流供全局使用,尽量不要关闭,只要程序中有地方关闭该流,其他地方将不能使用。
System.err:
System.err : 标准错误流,异常就是用此流打印出来的。
另外此流的流向可以改变。使得异常信息输出到指定文件保存
System.err.println("abc"); //打印出来的abc是红色的
System.err.setErr(new PrintStream("a.txt"));
int a = Integer.parseInt("hehe");// 此处会出现运行时异常,但是异常信息和原因和位置都被输出到了a.txt中。控制台不再显示。
打印流:(全部都只有输出流)
字节打印流:PrintStream
PrintStream ps = new PrintStream("a.txt");
ps.write(97); // a
ps.print(97); // 97 底层 write((97+"").getBytes());
ps.println(97); // 97 + 回车 底层 write((97+"").getBytes()); bw.newLine();
ps.close();
字符输出流: PrintWriter
PrintWriter pw = new PrintWriter("a.txt");
pw.write(97); // 打开 a.txt 没有内容
pw.write("
"); //打开 a.txt 没有内容
pw.println(97); // 打开 a.txt 没有内容 因为我们没有再PrintWriter的构造方法里面 开启自动刷新
pw.flush(); // 打开 a.txt 看到 a 换行 97 换行
//PrintWriter pw = new PrintWriter("a.txt",true); //编译报错 没有这样的构造方法
PrintWriter pw = new PrintWriter(new FileWriter("a.txt"),true);
pw.write(97); // 打开 a.txt 没有内容
pw.write("
") //打开 a.txt 没有内容
pw.println(97); // 打开 a.txt 看到 a 换行 97 换行
序列化流: