0

Javaに一連の文字列 (Stringオブジェクト) があり、それらを後で取得できるようにファイルに書き込みたいと考えています。

Java は UTF-16 を使用して文字列を内部に保存することを理解しています。文字列をきちんと読み書きしないと、フォーマットの問題で何かを台無しにしてしまうのではないかと心配しています。String オブジェクトを生のままファイルにダンプしたくありません。標準のテキスト エディタでファイルを開いて確認できるようにしたいためです。各文字列は、適切な方法で独自の行に表示されます (文字列には改行が含まれます)。

PrintWriterクラスをメソッドで使用するだけprintln(String x)で (文字列に改行がないと仮定して)、nextLine()それらを読み戻すときに Scanner クラスのメソッドと組み合わせて使用​​できますか? これにより、まったく同じ文字列が返されることが保証されますか?

さらに、文字列に改行が含まれていると仮定すると、それらを記述する適切な方法は何ですか? 改行を除外して (アドホックなエスケープ コードなどに置き換えて)、上記のようにprintlnメソッドを使用する必要がPrintWriterありますか?

4

1 に答える 1

1

完全を期すために、私は最終的に採用した解決策で自分の質問に答えています。振り返ってみると、解決策は非常に簡単です。当たり前!

BufferedWriter文字列を書き込むには、文字列を書き込むための便利なメソッドを持つクラスを使用します。BufferedWriter は次の方法で取得されます。

writer = new BufferedWriter(
             new OutputStreamWriter(
                 new FileOutputStream(filename), "UTF-8"));

ここでは、基本的にすべてでサポートされている UTF-8 エンコーディングを指定しました。

文字列を読み戻すには、BufferedReaderクラスを使用し、UTF-8 エンコーディングを使用するようにします。

reader = new BufferedReader(
             new InputStreamReader(
                 new FileInputStream(filename), "UTF-8"));
于 2016-01-07T11:13:46.900 に答える