web-dev-qa-db-ja.com

Java FileWriterで次の行に書き込む方法

以下のコードを使用して、レコードをファイルに書き込みました。レコードはファイルに書き込むことができますが、このメソッドの例を呼び出すたびに1行に追加されます。

ハローワールドハローワールドハローワールドハローワールド

出力を以下のようにコードを変更して、テキストを読み取るときにline.hasNextLine()を使用して確認できるようにするにはどうすればよいですか?

こんにちは世界
こんにちは世界
こんにちは世界
こんにちは世界

        // 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));
        }
12
user236501
out.write(c.toString());
out.newLine();

ここに簡単な解決策があります、私はそれがうまくいくことを願っています

編集:私は明らかに推奨されないアプローチである「\ n」を使用していた、修正された答え。

17
Zohaib

私が正しく理解したかどうかはわかりませんが、これはあなたが言っていることですか?

out.write("this is line 1");
out.newLine();
out.write("this is line 2");
out.newLine();
...
53
aleph_null

Javaが提供するnewLine()メソッドを呼び出して、ファイルに新しい行を挿入できます。

詳細については- http://download.Oracle.com/javase/1.4.2/docs/api/Java/io/BufferedWriter.html#newLine()

8
Kris