Создание нескольких объектов FileWriter в цикле - PullRequest
0 голосов
/ 03 апреля 2012

Мне нужно использовать этот цикл для создания разных текстовых файлов с разным выводом.Сейчас он создает 3 файла, которые выглядят так:

texts1.txt = some text
texts2.txt = texts1.txt + some text
texts3.txt = texts2.txt + some text

Моя идея состояла в том, чтобы создать несколько объектов класса FileWriter, назвав объект Fw[it] так, чтобы было столько объектов, сколько мне нужно.К сожалению, в Java я не могу этого сделать.Есть ли альтернативный способ создания нескольких FileWriter объектов в цикле?

int count = 3;
for (int it = 0; it < count; it++) {
String xxx = "texts" + it + ".txt";
FileWriter Fw = new FileWriter(xxx);
Collections.shuffle(list);
Fw.write(met.prnt(list,temp));
Fw.close();
}

Хорошо, он компилируется и запускается, но все равно имеет ту же проблему: он создает 3 файла, которые выглядят так:

texts1.txt = some text
texts2.txt = texts1.txt + some text
texts3.txt = texts2.txt + some text

Однако, это должно быть так:

texts1.txt = some text
texts2.txt = some text
texts3.txt = some text

Сейчас код выглядит так:

int count = 3;
for (int it = 0; it < count; it++) {
Collections.shuffle(list);
String xxx = "texts" + it + ".txt";
FileWriter hah[] = new FileWriter[count];
hah[it] = new FileWriter(xxx,false);
hah[it].write(met.prnt(list,temp));
hah[it].flush();
hah[it].close();
}

Ответы [ 2 ]

1 голос
/ 03 апреля 2012

Да, создайте FileWriter [] writers = new FileWriter [count] и поместите каждого писателя в свой собственный слот

0 голосов
/ 04 апреля 2012

Ваш код не ведет себя так, как вы описываете.Это даже невозможно.Строка, которая выполняет запись, не использует переменную имени файла xxx.Я также не понимаю, почему вы создали вторую версию, которая создает массив FileWriters, поскольку вы все еще используете только одну за раз.Тем более, что вы создаете массив внутри цикла.

...