「windows ファイル」と「unix ファイル」の違いは改行だけだと思いますか?
Windows マシンから UNIX マシンに移行したシステムがあり、フォーマットに問題があります。
ファイルが「トランスポートシステム」のシステムに配信される前に、UNIX/Windows 間の変換を自動化する必要があります。おそらく、現在の形式を特定するための何かと、それを別の形式に変換するための何かが必要になるでしょう。それが大きな違いである改行だけである場合、java.ioでファイルを読み取ることを検討しています。私の知る限り、どちらも readLine で処理できます。そして、各行を書き戻すだけです
while (line = readline)
print(line + NewlineInOtherFormat)
....
概要:
これは、テキスト ファイルの違いにすぎません。UNIX では単一のライン フィード (LF) を使用して新しい行を示し、Windows ではキャリッジ リターン/ライン フィード (CRLF) を使用し、Mac では CR のみを使用します。
Cebjyreは次のように説明しています。
OS X は UNIX と同じ LF を使用します - MacOS 9 以前は CR を使用しましたが
国別文字の文字エンコードにも違いがある可能性があります。「unix エンコーディング」はありませんが、多くの linux バリアントはデフォルトのエンコーディングとして UTF-8 を使用します。Mac OS (これも UNIX) は、独自のエンコーディング (macroman) を使用します。Windowsのデフォルトのエンコーディングが何であるかわかりません。
Windows でファイルが Unicode として扱われる場合、改行の違いに加えて、バイト オーダー マークが問題を引き起こす可能性があります。
ただし、遭遇する可能性のある別の問題のセットは、シングル/マルチバイト文字エンコーディングに関連している可能性があります。奇妙な予期しない文字 (行末ではない) が表示される場合は、これが原因である可能性があります。特に、四角いボックス、クエスチョン マーク、逆さまのクエスチョン マーク、余分な文字、または予期しないアクセント付き文字が表示される場合は.
UNIX では、. で始まるファイル。隠されています。Windows では、おそらく簡単にアクセスできないファイルシステム フラグです。これにより、非表示になっているはずのファイルがクライアント マシンで表示されるようになる場合があります。
ファイルのアクセス許可は、2 つの間で異なります。ファイルを UNIX システムにコピーすると、そのファイルがコピーを実行したユーザーに属し、権限が制限されていることに気付くでしょう。chown/chmod を使用して、正しいユーザーがアクセスできるようにする必要があります。
この問題を解決するためのツールがあります:
テキスト ファイルの内容だけに関心がある場合は、はい、行末が異なります。dos2unix のようなものを見てみましょう。ここで役立つかもしれません。
pauldoo が示唆するように、dos2unix のようなツールは非常に便利です。これらは fromdos または tofrodos として Linux/Unix システム上に存在する場合もあれば、汎用ツールボックスの recode として存在する場合もあります。
Java コーディングのヘルプ
ファイルへの書き込みまたはファイルからの読み取り (ユーザーが管理している) の場合、使用するエンコーディングを指定する価値があることがよくあります。これは、ほとんどの Java メソッドで許可されているためです。ただし、システム ロケールが確実に一致するようにすることで、多くの手間を省くことができます。