Я делаю программу, и мне нужно добавить список случайных 6-значных идентификаторов в файл. В настоящее время всякий раз, когда я запускаю эту часть программы, в файл ничего не добавляется. Что я делаю неправильно, чтобы код не записывался в файл? Я проверил и убедился, что все случайные числа определенно генерируются.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