我目前正在使用 BufferedWriter 将大量文本写入文件。我将 BufferedWriter 对象传递给代码中的各种函数。我现在需要在函数中使用流对象,以便在一处使用 Base64OutputStream 类。我不确定如何更改我的所有代码,而不需要为每个 .write() 调用将字符串转换为字节,并且还避免调用 IOUtils.write() 等辅助函数,因为这听起来会影响性能。
我应该放弃并调用 IOUtils.write() 函数来进行字符串写入吗?与对流或 writer write() 函数的干净调用相比,该代码肯定很难看。
我可以创建一个流对象和一个编写器对象并传递它们,根据需要在它们之间切换(这听起来像是只会崩溃或导致损坏)?
Java 对我来说是第二语言,所以我根本不知道我可以使用的所有可能的类和函数。我希望代码尽可能具有可读性和可维护性。
最佳答案
An
OutputStreamWriter
is a bridge from character streams to byte streams
因此,您可以创建一个 OutputStream
,将其包装在 OutputStreamWriter
中,写入 OutputStreamWriter
会将字符编码为字节并调用对应的OutputStream.write
。
在这种特定情况下,请注意文档中的内容
依次关闭底层流。因此,如果写入 Base64OutputStream
不是您的最后一个操作,您可能需要关闭并重新打开原始流,从而使 Writer
失效。
关于java - 如何将 Java OutputStream 与 OutputStreamWriter 混合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46532996/