Подтвердить что ты не робот

Как написать ArrayList строк в текстовый файл?

Я хочу написать ArrayList<String> в текстовый файл.

ArrayList создается с кодом:

ArrayList arr = new ArrayList();

StringTokenizer st = new StringTokenizer(
    line, ":Mode set - Out of Service In Service");

while(st.hasMoreTokens()){
    arr.add(st.nextToken());    
}
4b9b3361

Ответ 1

import java.io.FileWriter;
...
FileWriter writer = new FileWriter("output.txt"); 
for(String str: arr) {
  writer.write(str + System.lineSeparator());
}
writer.close();

Ответ 2

Теперь вы можете сделать это с помощью одной строки кода. Создайте объект arrayList и объект Path, представляющий файл, в который вы хотите записать:

Path out = Paths.get("output.txt");
List<String> arrayList = new ArrayList<> ( Arrays.asList ( "a" , "b" , "c" ) );

Создайте фактический файл и заполните его текстом в ArrayList:

Files.write(out,arrayList,Charset.defaultCharset());

Ответ 3

Я бы предложил использовать FileUtils из библиотеки ввода-вывода Apache Commons. Он будет создавать родительские папки выходного файла, если они не существуют. while Files.write(out,arrayList,Charset.defaultCharset()); не будет делать этого, бросая исключение, если родительские каталоги не существуют.

FileUtils.writeLines(new File("output.txt"), encoding, list);

Ответ 4

Если вам нужно создать каждый элемент ArrayList в одной строке, вы можете использовать этот код

private void createFile(String file, ArrayList<String> arrData)
            throws IOException {
        FileWriter writer = new FileWriter(file + ".txt");
        int size = arrData.size();
        for (int i=0;i<size;i++) {
            String str = arrData.get(i).toString();
            writer.write(str);
            if(i < size-1)**//This prevent creating a blank like at the end of the file**
                writer.write("\n");
        }
        writer.close();
    }

Ответ 5

Если вы хотите сериализовать объект ArrayList в файл, чтобы снова прочитать его снова, используйте ObjectOuputStream/ObjectInputStream writeObject()/readObject(), поскольку ArrayList реализует Serializable. Мне непонятно, из вашего вопроса, если вы хотите сделать это или просто написать каждый отдельный элемент. Если так, тогда ответ Андрей ответит.

Ответ 6

Вы можете использовать перегруженный метод ArrayList toString()

String tmp=arr.toString();
PrintWriter pw=new PrintWriter(new FileOutputStream(file));
pw.println(tmp.substring(1,tmp.length()-1));

Ответ 7

Я думаю, что вы также можете использовать BufferedWriter:

BufferedWriter writer = new BufferedWriter(new FileWriter(new File("note.txt")));

String stuffToWrite = info;

writer.write(stuffToWrite);

writer.close();

а до этого помни тоже добавь

import java.io.BufferedWriter;