我目前正在使用BufferedWriter将大量文本写入文件。我将BufferedWriter对象传递给我的代码中的各种函数。我现在需要在函数中使用流对象,以便在一个地方使用Base64OutputStream类。我不确定如何更改我的所有代码,而不需要为每个.write()调用将字符串转换为字节,也避免调用像IOUtils.write()这样的辅助函数,因为这听起来会影响性能。
我应该放弃并为字符串写入调用IOUtils.write()函数吗?与对流或编写器write()函数的干净调用相比,代码肯定是丑陋的。
我可以同时创建一个流对象和一个编写器对象并传递它们,根据需要在它们之间切换(听起来它只会崩溃或导致损坏)?
Java是我的第二语言,所以我不知道我可以使用的所有可能的类和函数。我希望代码尽可能可读和可维护。
答案 0 :(得分:1)
An
OutputStreamWriter
is a bridge from character streams to byte streams
因此,您可以创建OutputStream
,将其包装在OutputStreamWriter
中,写入OutputStreamWriter
会将字符编码为字节并调用相应的OutputStream.write
。
在这种特定情况下请注意文档说
依次关闭底层流。因此,如果写入Base64OutputStream
不是您的上一次操作,则可能需要关闭并重新打开原始流,使Writer
无效。