Java FileWriter как писать в следующую строку - PullRequest
12 голосов
/ 04 ноября 2011

Я использовал приведенный ниже код для записи записи в файл. Запись может быть записана в файл, но добавляется в одну строку, каждый раз, когда я вызываю этот метод, например:

Привет, мир! Привет, мир! Привет, мир! Привет, мир

Как я могу изменить код так, чтобы вывод был похож на приведенный ниже, чтобы при чтении текста я мог использовать line.hasNextLine () для проверки?

Hello World
Hello World
Hello World
Hello World

        // Create file
        FileWriter fstream = new FileWriter(fileName, true);
        BufferedWriter out = new BufferedWriter(fstream);
        out.write(c.toString());
        //Close the output stream
        out.close();

        // Code I used to read record I am using | as a seperator name and id
        String fileName = folderPath + "listCatalogue.txt";
        String line = "";
        Scanner scanner;
        String name, id;
        scanner = new Scanner(fileName);
        System.out.println(scanner.hasNextLine());
        while (scanner.hasNextLine()) {
            line = scanner.nextLine();
            System.out.println(line);
            StringTokenizer st = new StringTokenizer(line, "|");
            name = st.nextToken();
            id = st.nextToken();
            catalogues.add(new Catalogue(name, id));
        }

Ответы [ 4 ]

53 голосов
/ 04 ноября 2011

Я не уверен, правильно ли я понял, но вы это имеете в виду?

out.write("this is line 1");
out.newLine();
out.write("this is line 2");
out.newLine();
...
17 голосов
/ 04 ноября 2011
out.write(c.toString());
out.newLine();

вот простое решение, я надеюсь, что оно работает

EDIT: Я использовал "\ n", который явно не был рекомендован, модифицированный ответ.

8 голосов
/ 04 ноября 2011

Вы можете вызвать метод newLine(), предоставленный Java, чтобы вставить новую строку в файл.

Для получения дополнительной ссылки - http://download.oracle.com/javase/1.4.2/docs/api/java/io/BufferedWriter.html#newLine()

0 голосов
/ 07 мая 2015

.newLine () - лучший вариант, если ваше системное свойство line.separator корректно.и иногда вы не хотите изменять время выполнения свойства.Таким образом, добавляется альтернативное решение \ n

...