字元輸出流:Writer類:使用時候需要它的子類 局限性:只能寫文本文件,無法寫其他文件 方法: 字元輸入流讀文本:Reader類 同樣有局限性,只能讀文本文件 方法(使用上邊寫好的java.txt文本): 還是兩種方式: 複製文本文件: ...
字元輸出流:Writer類:使用時候需要它的子類
局限性:只能寫文本文件,無法寫其他文件
方法:
package demo; import java.io.FileWriter; import java.io.IOException; public class WriterDemo { public static void main(String[] args) throws IOException { FileWriter fw = new FileWriter("d:\\java.txt"); fw.write(100);// 寫入:d fw.flush(); // 註意每一次寫都要使用flush方法 char[] cs = { 'a', 'b', 'c', 'd', 'e' }; fw.write(cs);// 寫入:abcde fw.flush(); fw.write(cs, 1, 2);// 寫入:bc fw.flush(); fw.write("java");// 寫入:java fw.flush(); fw.close(); } }
字元輸入流讀文本:Reader類
同樣有局限性,只能讀文本文件
方法(使用上邊寫好的java.txt文本):
還是兩種方式:
package demo; import java.io.FileReader; import java.io.IOException; public class ReaderDemo { public static void main(String[] args) throws IOException { FileReader fr = new FileReader("d:\\java.txt"); int len = 0; while ((len = fr.read()) != -1) { System.out.print((char) len); } fr.close(); System.out.println("兩種方法分界線"); FileReader fr1 = new FileReader("d:\\java.txt"); char[] ch = new char[1024]; while ((len = fr1.read(ch)) != -1) { System.out.print(new String(ch, 0, len)); } fr1.close(); } }
複製文本文件:
package demo; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; /* * 字元流複製文本文件,而且必須是文本文件 * 字元流查詢本機預設的編碼表,簡體中文GBK * FileReader讀取數據源 * FileWriter寫入到數據目的 */ public class Copy { public static void main(String[] args) { FileReader fr = null; FileWriter fw = null; try { fr = new FileReader("c:\\1.txt"); fw = new FileWriter("d:\\1.txt"); char[] cbuf = new char[1024]; int len = 0; while ((len = fr.read(cbuf)) != -1) { fw.write(cbuf, 0, len); fw.flush(); } } catch (IOException ex) { System.out.println(ex); throw new RuntimeException("複製失敗"); } finally { try { if (fw != null) fw.close(); } catch (IOException ex) { throw new RuntimeException("釋放資源失敗"); } finally { try { if (fr != null) fr.close(); } catch (IOException ex) { throw new RuntimeException("釋放資源失敗"); } } } } }