【发布时间】:2014-11-11 14:03:02
【问题描述】:
我有一个程序应该生成一个具有随机整数名称的文件,并将 200 个字符的数据附加到每个文件。我已经成功创建文件了:
BufferedOutputStream bos = new BufferedOutputStream(Files.newOutputStream(
new File("C:/Users/mirvine/Desktop/SPAM").toPath()));
我已经得到它写chars 到文件:
bos.write((char)rand.nextInt(255));
但是当我将两者与 for 循环结合时,它不起作用:
try {
while(true) {
int i = rand.nextInt();
File outputFile = new File("C:/Users/mirvine/Desktop/SPAM/"+ String.valueOf(i) +".txt");
bos = new BufferedOutputStream(Files.newOutputStream(outputFile.toPath()));
PrintWriter writer = new PrintWriter(bos);
for(int qu = 0; qu <= 2000; qu++) {
writer.write((char)rand.nextInt(255));
System.out.println("Total " + String.valueOf(qu) + " characters written to " + String.valueOf(i) + ".txt!");
}
System.out.println("File named \'" + String.valueOf(i) + ".txt\' created!");
}
} catch (Exception e) {e.printStackTrace(); return;}
我将得到输出“Total: (number) characterswritten to (whatever).txt!”但它实际上不会写字符。但是,如果我使循环无限(通过将qu++ 更改为qu--),它将写入字符,当然只有一个文件。我什至尝试将其更改为while 循环,但没有成功。有什么想法吗?
【问题讨论】:
标签: java for-loop io printwriter bufferedoutputstream