我正在製作一個程序,我需要爲一個文件添加一個隨機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