在Java中创建一个充满随机整数的文本文件



也许是愚蠢的问题。但是我尝试用512个整数填充一个空文本文件,每个新行都有一个整数。我可以随机地把它们写进文件中,但它们会产生一大堆我想要的东西。有人能帮我改正我的代码吗?

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.*;
public class Randomizer {
      public static void main() {
        // The target file
        File out = new File("random.txt");
        FileWriter fw = null;
        int n = 512;
        // Try block: Most stream operations may throw IO exception
        try {
            // Create file writer object
            fw = new FileWriter(out);
            // Wrap the writer with buffered streams
            BufferedWriter writer = new BufferedWriter(fw);
            int line;
            Random random = new Random();
            while (n > 0) {
                // Randomize an integer and write it to the output file
                line = random.nextInt(1000);
                writer.write(line + "n");
                n--;
            }
            // Close the stream
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
            System.exit(0);
        }
    }
}

运行结束时random.txt的内容:9463765593113665333437829621346187993554694651813319223268147794541131427390等。

            writer.write(line + "n");

别用那个

使用BufferedWriter, BufferedWriter.newLine()

因此替换为:

writer.write(line);
writer.newLine();

似乎你正在使用Windows - Unix/Windows/Classic Mac上的行结束符不同。

在Windows系统中尝试rn,或者尝试在写字板中打开。txt文件,而不是在记事本中打开- n在Unix系统中常用,Windows中包含的记事本应用程序无法很好地处理它们。

检查javadoc中BufferedWriter的这一行:

提供了一个newLine()方法,该方法使用平台自己的行分隔符概念,该概念由系统属性line.separator定义。并非所有平台都使用换行符('n')来终止行。因此,调用此方法来终止每个输出行比直接写入换行符更可取。

相关内容

  • 没有找到相关文章

最新更新