也许是愚蠢的问题。但是我尝试用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'
)来终止行。因此,调用此方法来终止每个输出行比直接写入换行符更可取。