web-dev-qa-db-ja.com

Java 7:パスとファイル

Java 7で記述された新しいアプリケーションの場合、 Java.io.File オブジェクトを使用する理由はありますか?

Java.nio.file.PathJava.io.File ができることすべてを実行できると信じています。

185
dogbane

長編短編:

Java.io.Fileは、ほとんどの場合never推奨されない/サポートされません。とは言うものの、Java.nio.file.Pathはより現代的なJava.nio.file libの一部であり、Java.io.Fileができるすべてを実行しますが、一般的にはより良い方法などで実行します。

新しいプロジェクトの場合は、Pathを使用します。

レガシー用にFileオブジェクトが必要な場合は、 Path#toFile() を呼び出すだけです

ファイルからパスへの移行

このOracleページは違いを強調し、Java.io.File functionalityJava.nio.file lib (including Path) functionalityにマッピングします

Janice J. HeissとSharon Zakhourによる記事、2009年5月、JDK 7のNIO.2ファイルシステムについて議論

139
Don Cheadle

非推奨と考えることができますか?

いいえ、あなたはできないFile Javadocでそのようにマークされていない限り、廃止されると見なします。

17
user207421

詳細については、この記事を確認してください- http://www.Oracle.com/technetwork/articles/javase/nio-139333.html

基本的にfile.Pathがこれから先の方法になりますが、広く知られているJava人々は後方互換性を保つ傾向があるので、それを残した理由だと思います。

7
LordDoskias

はい。ただし、Java7独自の標準APIを含む多くの既存のAPIは、Fileタイプでのみ機能します。

4
irreputable

Java.io.Fileは非推奨ではありません。はい、Java.nio.file.Pathの方が優れていますが、Java.io.Fileを使用するプログラムやテキストがまだたくさんある限り、レガシーの理由だけで非推奨と見なされるべきではありません。そうすることは、スパナを作品に投げ込むことであります。たとえば、Androidフレームワークは、その基本的なファイル処理機能のいくつかにFileを使用しますが、他の多くのことも行っています。

1
Andrew S