java—关于为什么输出流只将翻译变量的最后一行打印到新文件而不是所有行,有什么解释吗?

6za6bjd0  于 2021-06-24  发布在  Pig
关注(0)|答案(1)|浏览(274)

我正在尝试将英语单词从一个文本文件转换成一个新的文件,将单词翻译成拉丁语。当它被简单地打印到控制台上时,所有的东西都会以应有的方式进行转换,但我遇到的问题是,新文件上只显示初始文件的最后一行。

public static void newFile(String pigLatin) {
    OutputStream os = null;
    try {
        os = new FileOutputStream(new File("/Users/amie/Documents/inputnewnew.pig.txt"));
        os.write(pigLatin.getBytes(), 0, pigLatin.length());
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            os.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
qhhrdooz

qhhrdooz1#

默认情况下 FileOutputStream 正在重写现有文件。您需要做的是使用另一个构造函数 append 参数

FileOutputStream(String name, boolean append)

喜欢

os = new FileOutputStream(new File("/Users/...", true))

看一下参考资料

相关问题