在本地寫入保存的操作, 很多時候我們習慣使用Outputstream, 而其實寫文本文件的時候, Java提供一個很好的工具給我們 ----- writer. 由於它是針對文本類型的文件操作, 所以如果是對TXT, LOG等這類文本文件進行寫操作時, 它的效率比Outputstream高不少. 以下是一個栗子.
public static void main(String[] args) { OutputStreamWriter ops = null; BufferedWriter bw = null; File file; File newFile; String jsonStr2="hello world"; try { String name="文件名稱"; file = new File("D:/workspace/存放路徑1",name + ".txt"); newFile = new File("D:/workspace/存放路徑2", name +".new"); newFile.createNewFile(); ops = new OutputStreamWriter(new FileOutputStream(file), "UTF-8"); bw = new BufferedWriter(ops); bw.append(jsonStr2); } catch (Exception e) { e.printStackTrace(); } finally { try { if (bw != null) { bw.flush(); bw.close(); } } catch (Exception e) { e.printStackTrace(); } } }
writer的flush 和 close操作必須放在finally那里, 因為進行讀寫操作時, 數據先讀取到緩存中, 再從緩存中讀取寫入文件. 因此從緩沖區讀完數據后, 必須flush清空緩沖區, 然后close關閉讀寫流.