我正在制作一个程序,我需要为一个文件添加一个随机6位数的ID列表。目前每当我运行这部分程序时,都没有添加到文件中。我究竟做错了什么,以便代码不写入文件?我检查并确保所有的随机数字肯定正在生成。BufferedWriter没有写入文件
static HashSet<Integer> idHashList =
new HashSet<>();
public static void createIds(){
File writeId = new File("peopleIDs.txt");
try {
FileWriter fw = new FileWriter(writeId,true);
BufferedWriter out = new BufferedWriter(fw);
for(int i = 0; i < 100; i++){
out.write(People.genRand());
}
out.close();
} catch (IOException ex) {
System.out.println(ex.getMessage());
}
}
protected static int genRand(){
while(true){
int rand = ((int) ((Math.random() * (899999))+100000));
if(idHashList.add(rand)){
return rand;
}
}
}
1)是否编译?看起来你有两个相同的方法。 2)为什么在代码中没有使用idHashList? 3)你确定'People.genRand()'在做你的想法吗?您是否尝试过打印出它返回的内容,然后将其写入文件以测试内容? –
Woops! @HovercraftFullOfEels两次拷贝同样的东西:P。现在修复它 – bob
@TomaszGawel为什么? 'flush()'在'close()中自动发生''参见Javadoc。 – EJP