如何在BufferedWriter中获取缓冲区
我正在用BufferedWriter在java中编写一个文件。这里是我的代码 -如何在BufferedWriter中获取缓冲区
public static void main(String[] args) { try(BufferedWriter writer = Files.newBufferedWriter(filePath, Charset.forName("CP1252"))) {
while (thereIsContentToWrite){
writer.write(content);
}
}catch (CharacterCodingException ce){
//get content of writer's current buffer (java.io.BufferedWriter.cb)
}catch (IOException e) {
e.printStackTrace();
}
}
我想,因为它包含了“不可映射字符”按CP1252就报出作家的当前缓冲区的内容。 目前,我们正在努力维持另一个缓冲区来保存内容,但是我想知道是否有更好的方法来实现这一目标。
回答:
你可以写一个CustomBufferedWriter
它类似于BufferedWriter
并在实施添加一个getter方法cb
。
回答:
如果我理解正确,您想要报告BufferedWriter缓冲区的内容。你可以使用Reflection
API来做到这一点。
下面的代码应检索缓冲区的内容:
// BufferedWriter buffer is the private field "cb" Field bufferField = writer.getClass().getDeclaredField("cb");
// We make this field accessible so we can retrieve its contents
bufferField .setAccessible(true);
// We can now get the data
char[] buffer = (char[]) bufferField.get(writer);
以上是 如何在BufferedWriter中获取缓冲区 的全部内容, 来源链接: utcz.com/qa/265619.html