将OutputStream重定向到文件

时间:2014-09-11 09:11:05

标签: java outputstream

我必须使用一种方法从api中编写模型。

mode.write(OutputStream out);

目前我这样做是为了在console上看到我的输出:

model.write(System.out);

但是,我想指定一个文件路径来将输出写入文件。

有关我如何处理此OutputStream并将其更改为FileOutputStream以将其写入文件的任何建议?

感谢您的回答!

2 个答案:

答案 0 :(得分:1)

FileOutputStream 一个OutputStream,所以你可以做到

model.write(new FileOutputStream("filename"));

请注意,您必须添加一些异常处理(FileOutputStream()可以抛出FileNotFoundException)。

答案 1 :(得分:1)

model.write(new BufferedOutputStream(new FileOutputStream(file)));

这是针对二进制数据的。如果需要文本(如使用System.out建议的那样),请查看是否存在

model.write(Writer out);

然后使用Writer将java文本(Unicode)转换为具有某种编码的二进制数据(字节)。 您也可以省略默认平台编码的编码,即对于计算机本地文件。

String encoding = "UTF-8";
model.write(new BufferedWriter(new OutputStreamWriter(
    new FileOutputStream(file), encoding)));