在其中写入一些文本时,文件大小进入 GB

Size of file goes into GB's on writing some text in it

为了学习文件读写,我编写了一种方法,将一些结果写入文件。 在 运行 上,程序的文件大小变成了 GB,我不得不在中间停止程序,这是我没有预料到的。 我不确定我在做什么错误。 能否请您指出其中的错误或更好的方法。

public static void modOperation() {
    int i = Integer.MAX_VALUE;
    FileWriter fileWriter;
    try {
        fileWriter = new FileWriter("Mod.txt");
        while (i > 0) {
            boolean result = ((i-- % 3) == 0);
            fileWriter.write(" result :: " + result);
        }
        fileWriter.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

Integer.MAX_VALUE 是 2^31 - 1,等于 2,147,483,647。您正在编写文本 " result :: ",每行加上一个数字,大约 20 个字节。

2,147,483,647 x 20 字节 = 42 太字节

因此您的代码肯定会导致写入千兆字节(甚至更多)。

更好的解决方案是像这样给循环一个上限:

while (i < 100000) {
    boolean result = ((i-- % 3) == 0);
    fileWriter.write(" result :: " + result);
}