編集:コメントを考えると、明確にする必要があります。これは間違いなく文脈に依存します。あなたは何をしようとしているのですか?「ネイティブ」オペレーティング システム形式でファイル パスを作成しようとしている場合は、次のようにオプション 5 を使用しますFile
。
File f = new File("some");
f = new File(f, "path");
f = new File(f, "file.ext");
または、このロジックをメソッドに入れます。
public static File newFile(String root, String... parts) {
// TODO: Check that nothing's null (root, parts, each element of parts)
File ret = new File(root);
for (String part : parts) {
ret = new File(ret, part);
}
return ret;
}
次に、次のように呼び出すことができます。
File f = SomeUtilityClass.newFile("some", "path", "file.ext");
(これは最近の JRE のどこかに存在する可能性がありますが、もしそうならどこにあるかはわかりません。)
FileInputStream
などで機能するものだけが必要な場合は、次の 2 つの理由から、スラッシュをハードコードするだけです。
- バックスラッシュより読みやすい
- 他のオペレーティング システムでも動作します
いずれにせよFile
、値に明確な意味を与えるため、おそらく を作成します。Java のほとんどの IO API は、必要に応じて を受け入れます。これにより、これがファイル パスFile
であることが、周囲のすべてのコードに明らかになります。したがって、次を使用できます。
File file = new FIle("some/path/file.ext");
...そして、それはWindowsでも機能します。File.getCanonicalFile
必要に応じて、スラッシュではなくバックスラッシュを使用して正規表現を取得するために使用できます。