【我的segmentfault原文】
由於需要對文字檔案的部分內容進行更新操作,具體操作是需要先將文字檔案內容讀取出來,暫以字串形式儲存,然後進行匹配替換,並將字串重新寫入原文字檔案中。
規劃使用bufferedreader進行讀取,使用printwriter進行寫入操作
bufferedreader br = null;
printwriter pw = null;
stringbuilder sqlmapconf = new stringbuilder();
try
str = sqlmapconf.tostring().replacefirst("\\*sqlmap對映檔案\\*", config);
pw.write(str);
system.out.println(str);
} catch (filenotfoundexception e) catch (ioexception e) catch (exception e) finally
if (br!=null) catch (ioexception e)
}}
測試時發現,原文字檔案內容會被清空,且未有內容寫入,也無異常報錯資訊
通過分析推測,輸入流未關閉的情況下,輸出流操作同一路徑檔案,會造成衝突,輸入流會認為該檔案不存在並重新建立同名檔案覆蓋原檔案,而後輸入流實際讀取的是乙個空檔案,那麼輸出流寫入的內容也為空,最後造成檔案內容置空的現象。
在輸入流操作完該檔案後,輸出流再進行檔案操作,**糾正如下:
bufferedreader br = null;
printwriter pw = null;
stringbuilder sqlmapconf = new stringbuilder();
try
str = sqlmapconf.tostring().replacefirst("\\*sqlmap對映檔案\\*", config);
pw = new printwriter(sqlmapconffile,"utf-8");//糾正增加的**
pw.write(str);
system.out.println(str);
} catch (filenotfoundexception e) catch (ioexception e) catch (exception e) finally
if (br!=null) catch (ioexception e)
}}
C 流 檔案操作(輸入輸出流)
到目前為止,我們已經使用了iostream標準庫,它提供了cin和cout方法分別用於從標準輸入讀取流和向標準輸出寫入流。本教程介紹如何從檔案讀取流和向檔案寫入流。這就需要用到 c 中另乙個標準庫fstream,它定義了三個新的資料型別 資料型別 描述ofstream 該資料型別表示輸出檔案流,用於...
讀寫同乙個檔案出問題
在c primer plus 第六版中的第十三章程式設計練習第3題出現了問題。題目 編寫乙個檔案拷貝程式,提示使用者輸入文字檔案名,並以該檔名作為源檔名和輸出檔名。該程式要使用ctype.h中的toupper 函式,在寫入到輸出檔案時把所有文字轉換成大寫。使用標準的i o和文字模式。我一開始就只建立...
檔案流的簡單輸入輸出
檔案流的簡單輸入輸出 也只有最簡單的用法。要實現檔案流,首先要有標頭檔案fstream 輸出流 將電腦的東西輸出到資料夾裡,或者叫寫到資料夾裡。基本格式 第一種ofstream out f file.txt 開啟f盤下的file.txt檔案,開啟寫功能。out 123456 往資料夾寫入123456...