これが以前に投稿されていた場合は、申し訳ありません。
私がやろうとしているのは、プロジェクトのパッケージの 1 つにあるファイルに単純な文字列を読み書きすることです。ソース パッケージの内部 "resources" というパッケージがあります。ここで、 というファイルを読み込んで、myfile.txt
何らかの処理を行い、再度 として保存しnewmyfile.txt
ます。CSVデータを簡単に読み込んで保存するだけ。
次のようなリーダーを作成しました。
public BufferedReader getFileReader(String fileNameWithExtension, String sourcePackage) {
try {
String file = "/" + sourcePackage + "/" + fileNameWithExtension;
BufferedReader br = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream(file)));
return br;
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
return null;
}
}
これは私の Mac では問題なく動作します。これを読んでみると、すべてのオペレーティング システムで動作させるには File.separator を使用する必要があることがわかりました。だから私はこれを変更しますが、それでも機能しません。/
どこかで、相対パスを使用する場合、オペレーティング システムに関係なく、常に相対パスが で始まると言われてい../
ます。Java でのファイル ストレージの完全な初心者として、私は混乱しています。
ファイルを読み書きする方法もたくさんありますが、どの方法を選択すればよいのか、またその理由はわかりません。
1 つの長い文字列または文字列の配列を保存するだけのファイルを読み取って作成するための最良の方法は何ですか?