!!!如下所說的輸入和輸出都是以程序爲對象(而不是文件)!!!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)。內存