48

私は以下をコーディングしましたFileWriter

try {
    FileWriter writer = new FileWriter(new File("file.txt"), false);

    String sizeX = jTextField1.getText();
    String sizeY = jTextField2.getText();
    writer.write(sizeX);
    writer.write(sizeY);

    writer.flush();
    writer.close();
} catch (IOException ex) {}

通常どおりに新しい行を挿入したいのです\nが、うまくいかないようです。

これを解決するにはどうすればよいですか?

ありがとうございました。

4

9 に答える 9

71

Windowsのような現在のOSで使用されている改行文字を取得したい場合は、次の\r\n方法で取得できます

  • System.getProperty("line.separator");
  • Java7以降System.lineSeparator()
  • またはスチュワートが述べたように、それらを生成しますString.format("%n");

また、文字列の末尾に OS 依存の行区切りを自動的に追加するメソッドをPrintStream使用することもできますprintln

PrintStream fileStream = new PrintStream(new File("file.txt"));
fileStream.println("your data");
//         ^^^^^^^ will add OS line separator after data 

(ところでSystem.out、PrintStream のインスタンスでもあります)。

于 2013-08-31T15:37:02.460 に答える
32

試すSystem.getProperty( "line.separator" )

   writer.write(System.getProperty( "line.separator" ));
于 2013-08-31T15:37:27.633 に答える
13

でラップFileWriterしてみてくださいBufferedWriter

BufferedWriter bw = new BufferedWriter(writer);
bw.newLine();

BufferedWriter の Javadoc はこちら

于 2013-08-31T15:36:36.990 に答える
4

1.8以降、これは応答に追加する価値のある追加のソリューションかもしれないと思いました:

パス java.nio.file.Files.write(パス パス、イテラブル行、OpenOption... オプション) が IOException をスローする

StringBuilder sb = new StringBuilder();
sb.append(jTextField1.getText());
sb.append(jTextField2.getText());
sb.append(System.lineSeparator());
Files.write(Paths.get("file.txt"), sb.toString().getBytes());

同じファイルに追加する場合は、おそらく Files.write() で Append フラグを使用します

Files.write(Paths.get("file.txt"), sb.toString().getBytes(), StandardOpenOption.APPEND);
于 2016-08-28T23:04:57.183 に答える
3

試す:

String.format("%n");

詳細については、この質問を参照してください。

于 2013-08-31T15:33:39.303 に答える
3

同じコードを使用するが新しい行を追加して、ファイルに何かを追加すると新しい行になるようにする場合。単純に BufferedWriter を使用できますnewLine()
ここでコードも改善しました。数値データ型に何もキャストされていなかったため、 NumberFormatException は不要でした。一度使用する変数も保存されていました。

try {
    BufferedWriter writer = new BufferedWriter(new FileWriter("file.txt"));
        writer.write(jTextField1.getText());
        writer.write(jTextField2.getText());
        writer.newLine();
        writer.flush();
        writer.close();
} catch (IOException ex) {
    System.out.println("File could not be created");
}
于 2013-08-31T16:23:18.997 に答える
0

私は次のように問題に取り組みます:

    BufferedWriter output;
    output = new BufferedWriter(new FileWriter("file.txt", true));
    String sizeX = jTextField1.getText();
    String sizeY = jTextField2.getText();
    output.append(sizeX);
    output.append(sizeY);
    output.newLine();
    output.close();

FileWriter コンストラクターの true は追加を許可します。
メソッド newLine() は BufferedWriter によって提供され
ています

于 2013-08-31T15:53:57.570 に答える