如何将Java OutputStream与OutputStreamWriter混合使用?

如何将Java OutputStream与OutputStreamWriter混合使用?,java,Java,我目前正在使用BufferedWriter将大量文本写入文件。我将BufferedWriter对象传递给代码中的各种函数。现在,为了在一个地方使用Base64OutputStream类,我需要在函数中使用stream对象。我不确定如何在每次.write调用都不需要将字符串转换为字节的情况下更改所有代码,也不确定如何避免调用像IOUtils.write这样的帮助函数,因为这听起来可能会影响性能 我是否应该放弃并调用IOUtils.write函数来进行字符串写入?与对流或writer write函数

我目前正在使用BufferedWriter将大量文本写入文件。我将BufferedWriter对象传递给代码中的各种函数。现在,为了在一个地方使用Base64OutputStream类,我需要在函数中使用stream对象。我不确定如何在每次.write调用都不需要将字符串转换为字节的情况下更改所有代码,也不确定如何避免调用像IOUtils.write这样的帮助函数,因为这听起来可能会影响性能

我是否应该放弃并调用IOUtils.write函数来进行字符串写入?与对流或writer write函数的干净调用相比,该代码无疑是丑陋的

我是否可以同时创建一个stream对象和一个writer对象并传递它们,根据需要在它们之间切换,这听起来像是崩溃或导致损坏

Java是我的第二语言,所以我不知道所有可能的类和函数。我希望代码尽可能可读和可维护

因此,您可以创建OutputStream,将其包装在OutputStreamWriter中,写入OutputStreamWriter将字符编码为字节,并调用相应的OutputStream.write

在这种情况下,请注意文档中


从而依次关闭底层流。因此,如果写入Base64OutputStream不是您的最后一个操作,您可能需要关闭并重新打开原始流,从而使写入程序无效。

我错过了关闭Base64OutputStream的要求。既然如此,我需要将base64数据写入一个临时文件,然后将其写入最终的输出文件,即标记中包含base64的XML文件,那么我可以使用支持直接写入字符串的文件编写器。谢谢