Java fileWriter() 関数を使用しています。Windows マシンでは動作しますが、Linux では動作しません。
fileWriter() 関数が Windows でのみ機能するのか、それとも別の問題があるのかを知りたいですか?
よろしくお願いします
私は、ファイルIOがLinuxで機能していないと言っている人々の同様の報告を見てきました。ほとんどの場合、問題はWindowsのディレクトリパスセパレータを使用していたことでした。
String filePath = "my\\file\\path\\File.txt"; // only works on windows
String filePath = "my/file/path/File.txt"; // works on all platforms
後者を使用していることを確認してください。これらはWindowsでも動作します(少なくともJava内から)。
FileWriter クラスを参照していますか? その場合、両方のシステムで正しく動作します。そうでない場合は、fileWriter() 関数がどこから来ているかをお知らせください。
FileWriter クラスは両方のシステムで機能しますが、Linux と Windows では異なるパス規則が使用されることに注意してください。UNIX ベースのシステムではスラッシュ「/」を使用してディレクトリとフィールドを区切り、Windows ではバックスラッシュ「\」を使用してそれらを区切ります。したがって、「home」というラベルの付いたディレクトリに「file.txt」という名前のファイルがある場合、Linux では /home/file.txt、Windows では C:\home\file.txt になります。 Windows の C: ドライブにあります。
ただし、ほぼ確実に FileWriter を作成する必要がある File クラスには、実行しているシステムによって決定される、separatorChar、pathSeparatorChar、separator、および pathSeparator の 4 つの静的フィールドがあります。pathSeparator は、たとえば、Linux では「/」、Windows では「\」です。いずれかのシステムでファイルへのパスを作成する必要がある場合は、これらのフィールドを参照してください (タイプ File のオブジェクトをインスタンス化する必要さえありません。フィールドは静的であるため、File.separatorChar を使用するだけです)。