0

テキストファイルに書き込んでいて、System.getProperty(line.separator);次の行に移動するために使用しています。

FileWriter fw = new FileWriter(file,true);
   fw.write("Correct Fields are:"+System.getProperty("line.separator")+"\r\n");

"\n"以前は機能していなかったので、Webで検索して見つけまし"\r\n"た。

"\r\n"ですか?メモ帳固有ですか?

4

6 に答える 6

2

「改行」の概念は、システムごとに異なる方法で処理されます。

物事を(過度に)単純化するには:WindowsはCRLF(\r\n)を使用し、UNIXおよび他のほとんどの一般的な最新システムはLF(\n)を使用します。

便利な、または煩わしい、視点によっては、Javaは「改行」(\n)をターゲットプラットフォームの正しい形式に変換することがあります。

于 2012-06-12T20:32:29.300 に答える
2

\ rはキャリッジリターン、\nはラインフィードです。

この形式はOS固有です。Windows / DOSの場合、\ r\nが必要です。UNIXの場合は\nで十分であり、Macの場合は\rが使用されます。(Mac OS 9まで)Mac OS 10以降では、\nが使用されます。

お役に立てれば。

于 2012-06-12T20:33:18.910 に答える
1

「\r\ n」は、「キャリッジリターン」と「ラインフィード」の2文字です。Windowsでは、すべての新しい行は「\ r \ n」ですが、UNIXシステムでは、新しい行は単に「\n」です。

于 2012-06-12T20:31:49.693 に答える
1

改行シーケンスはプラットフォームに依存します。Windowsではです\r\n。ほとんどのUnixシステムでは\nです。古いバージョンのMacでは、\rが使用されます。\rはキャリッジリターン(CR)文字で、\nは改行(LF)文字です。

参考文献

于 2012-06-12T20:32:24.670 に答える
1

行区切り文字はプラットフォームに依存します(たとえば、"\n"UNIXの場合"\r\n"、Windowsの場合)。

FileWriter直接使用する代わりにBufferedWriter、メソッドを持つnewLine()、または舞台裏でこれらの問題に対処するメソッドPrintWriterを提供するメソッドにラップする場合は、問題を回避できます。println

于 2012-06-12T20:34:53.137 に答える
1

Q:「\ r \ n」とは何ですか?メモ帳固有ですか?

A:いいえ、「\ r \ n」(「キャリッジリターン-ラインフィード」)はDOS/Windows固有です。

ほとんどのコンパイラは、「\ n」(「改行」)を現在のプラットフォームの適切なシーケンスにエイリアスするだけです。DOS / Windowsコンパイラは、2文字の「\ r\n」を生成します。Linuxコンパイラは、同じプログラムに対して1文字の「\n」を生成します。

Java(クロスプラットフォームの互換性のため)を使用すると、必要なものを明示的に指定できます。

于 2012-06-12T20:34:56.797 に答える