BufferedWriter一定要記得重新整理快取

2021-09-28 15:10:50 字數 520 閱讀 1272

我寫了下面這段**,目的檔案位址是localfilepath,內容是line,咋一看沒什麼問題,但是**執行後,目的檔案卻沒有寫進內容。。。

public

static

void

writeline

(string localfilepath, string line) throws ioexception

原來bufferedwriter是緩衝輸出流,意思是呼叫bufferedwriter的write方法時候。資料先從jvm記憶體寫入到緩衝區裡,並沒有直接寫到目的檔案。

呼叫bufferedwriter的flush()方法時,會重新整理,也就是把資料寫入到目標檔案。或者可以呼叫bufferedwriter的close()方法,該方法會在關閉該輸入流之前先呼叫flush()方法,也會把資料寫入到目標檔案裡。

有人可能會想,不管怎麼樣最後都會呼叫close()方法的,所以應該沒事。但是如果在呼叫close()之前就需要將資料寫到目的檔案的話,就需要立即呼叫flush()方法了。

Java中BufferedWriter類的常用方法

bufferedwriter 字元緩衝輸出流 bufferedwriter writer out 預設緩衝區大小構造字元緩衝輸出流物件 bufferedwriter writer out,int size 指定緩衝區大小 public void write int c throws ioexcept...

BufferedWriter寫入檔案注意事項

對於文字檔案,使用bufferedreader,bufferedwriter進行讀寫效率更高,原因是使用了快取區,其工作流程是 先把文字內容讀寫到快取區,快取區滿了,自動把快取區中的內容讀寫到檔案.問題 如果讀寫完的同時緩衝區剛好裝滿,那麼緩衝區會把裡面的資料朝目標檔案自動進行讀或寫,這種時候你直接...

BufferedWriter寫入檔案注意事項

對於文字檔案,使用bufferedreader,bufferedwriter進行讀寫效率更高,原因是使用了快取區,其工作流程是 先把文字內容讀寫到快取區,快取區滿了,自動把快取區中的內容讀寫到檔案.問題 如果讀寫完的同時緩衝區剛好裝滿,那麼緩衝區會把裡面的資料朝目標檔案自動進行讀或寫,這種時候你直接...