ランダムな整数名のファイルを生成し、各ファイルに 200 文字のデータを追加するプログラムがあります。私はすでにファイルを作成できることに成功しています:
BufferedOutputStream bos = new BufferedOutputStream(Files.newOutputStream(
new File("C:/Users/mirvine/Desktop/SPAM").toPath()));
char
そして、ファイルに s を書き込むようになりました。
bos.write((char)rand.nextInt(255));
しかし、この 2 つを 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) characters written to (whatever).txt!」という出力が得られます。しかし、実際には文字を書きません。qu++
ただし、( に変更して)ループを無限にするqu--
と、もちろん 1 つのファイルだけで文字が書き込まれます。ループに変更してみましたが、while
うまくいきませんでした。何か案は?