繁体   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