簡體   English   中英

BufferedWriter寫入BufferedReader位置

[英]BufferedWriter to write at BufferedReader position

我的代碼讀取通過UTF-8編碼的xml文件,直到找到指定的字符串。 它會找到指定的字符串,但是我希望此時寫入文件中。

我更喜歡通過流來執行此操作,因為僅需要完成一些小任務。

我找不到解決辦法。 歡迎任何其他方法。

到目前為止的代碼:

final String RESOURCE = "/path/to/file.xml";

BufferedReader in = new BufferedReader(new InputStreamReader(ClassLoader.class.getResourceAsStream(RESOURCE), "UTF-8"));
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(ClassLoader.class.getResource(RESOURCE).getPath()),"UTF-8"));

String fileLine = in.readLine();

while (!fileLine.contains("some string")) {

    fileLine = in.readLine();

}

// File writing code here

除了覆蓋現有字節(使用RandomAccessFile東西)外,您實際上無法寫入文件的中間。 但是,只有在您需要寫入的字節長度與要替換的字節長度完全相同的情況下,這才行得通,我對此表示高度懷疑。

相反,您需要將文件重寫為新文件,將輸入復制到輸出中,替換過程中需要替換的部分。 您可以通過多種方式來執行此操作。 我建議使用StAX事件讀取器和寫入器,因為StAX api相當用戶友好(與SAX相比),並且速度快且內存效率高。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM