!!!如下所说的输入和输出都是以程序为对象(而不是文件)!!!java
好比说:输出流,是指字节/字符经过管道流输出到文件。code
字节流(以字节为单位读/写) | 字符流(以字符为单位读/写) | |
输入流 | InputStream | Reader |
输出流 | OutputStream | Writer |
缓冲流:套接在字节流之上,带缓冲区,能够提升减小对硬盘的读写。在管道流前加Buffered 对象
/* *使用缓冲读文件 */ BufferedReader in = new BufferedReader(new FileReader("result.txt")); while (in.readLine() != null){ System.out.println(in.readLine()); } in.close(); /* *使用缓冲写文件 */ String s = "hhhhhhhhhhhhhhhhhhhhhh"; //文件不存在则自动新建(目录不会自动新建,目录不存在会报错),true表示追加 BufferedWriter out = new BufferedWriter(new FileWriter("test.txt",true)); for (int i = 0; i < 10; i++) { out.write(i+s); out.newLine(); } //把数据从内存刷新进文件 out.flush(); out.close(); /* *从控制台输入→文件 */ BufferedWriter out = new BufferedWriter(new FileWriter("test.txt",true)); BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); String ss = in.readLine(); out.newLine(); while (ss != null) { if (ss.equalsIgnoreCase("exit")) break; System.out.println(ss); out.write(ss); ss = in.readLine(); } in.close(); out.flush(); out.close();
全部的输入/出流均可以套缓冲区(Buffered)。内存