ホームページ > Java > &#&チュートリアル > 「Java を捕まえた!」: なぜ java.io.File を残すのですか?

「Java を捕まえた!」: なぜ java.io.File を残すのですか?

Mary-Kate Olsen
リリース: 2025-01-16 20:08:15
オリジナル
794 人が閲覧しました

java.io.File クラスは広く使用されていますが、Java SE 7 以降、Java でのファイルやディレクトリの操作には java.nio.file.Path ほど推奨されない制限があります。Oracle は、一般的な例外、オペレーティング間での一貫性のない動作などの問題を強調しています。システム、シンボリック リンクのサポートの欠如、大規模なディレクトリでのパフォーマンスの問題、安全でないディレクトリ トラバーサル。

クラス java.nio.file を備えた Path パッケージは、より堅牢で最新のソリューションを提供します。 実際の比較を見てみましょう:

1.ファイルの削除:

  • java.io.File: file.delete() 経由で削除すると、ブール値のみが返され、エラーの詳細は返されません。
<code class="language-java">File file = new File("example.txt");
System.out.println("Arquivo excluído com sucesso: " + file.delete());</code>
ログイン後にコピー

  • java.nio.file.Path: Files.delete() は特定の例外をスローし、より正確なエラー処理を可能にします (例: NoSuchFileExceptionAccessDeniedException)。
<code class="language-java">Path path = Path.of("example.txt");
try {
    Files.delete(path);
} catch (IOException e) {
    System.err.println("Erro ao excluir arquivo: " + e.getMessage());
}</code>
ログイン後にコピー

2.ファイル名の変更:

  • java.io.File: oldFile.renameTo(newFile) はシステム間で一貫性のない動作を示します。
<code class="language-java">File oldFile = new File("old_name.txt");
File newFile = new File("new_name.txt");
System.out.println("Renomeou com sucesso: " + oldFile.renameTo(newFile));</code>
ログイン後にコピー

  • java.nio.file.Path: Files.move(oldPath, newPath) は例外処理を提供します (例: FileAlreadyExistsException)。
<code class="language-java">Path oldPath = Path.of("old_name.txt");
Path newPath = Path.of("new_name.txt");
try {
    Files.move(oldPath, newPath);
    System.out.println("Arquivo renomeado com sucesso.");
} catch (IOException e) {
    System.err.println("Erro ao renomear arquivo: " + e.getMessage());
}</code>
ログイン後にコピー

段階的な移行:

java.io.File を使用する既存のプロジェクトの場合、file.toPath() メソッドを使用して FilePath に変換することで段階的に移行できます。

<code class="language-java">File file = new File("example.txt");
Path path = file.toPath();
try {
    Files.delete(path);
} catch (IOException e) {
    System.err.println("Erro ao excluir arquivo: " + e.getMessage());
}</code>
ログイン後にコピー

java.nio.file.Path の採用により、より堅牢で安全で移植可能なコードが提供されます。 学習には時間がかかりますが、長期的なメリットは移行のコストを上回ります。

参考文献:

以上が「Java を捕まえた!」: なぜ java.io.File を残すのですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート