代码之家  ›  专栏  ›  技术社区  ›  Carol.Kar

将OutputStream重定向到文件

  •  0
  • Carol.Kar  · 技术社区  · 10 年前

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

    mode.write(OutputStream out);

    现在我这样做是为了看到我的输出 console :

    model.write(System.out);

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

    我有什么建议 OutputStream 并将其更改为 FileOutputStream 将其写入文件?

    谢谢你的回答!

    2 回复  |  直到 10 年前
        1
  •  1
  •   Joop Eggen    10 年前
    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)));
    
        2
  •  1
  •   Andreas Fester    10 年前

    A. FileOutputStream OutputStream ,所以您可以简单地

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

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