1.Files
クラス
ファイルを操作するには、洗練されたユーティリティ クラスがあります — java.nio.file.Files
。あらゆる場面に応じたメソッドが用意されています。このクラスのすべてのメソッドは静的であり、Path オブジェクトに対して動作します。たくさんの方法があるので、最も重要なものだけを取り上げます。
方法 | 説明 |
---|---|
|
パスが次のような新しいファイルを作成します。path |
|
新しいディレクトリを作成します |
|
複数のディレクトリを作成します |
|
一時ファイルを作成します |
|
一時ディレクトリを作成します |
|
ファイルまたはディレクトリが空の場合は削除します |
|
ファイルをコピーします |
|
ファイルを移動します |
|
パスがファイルではなくディレクトリであるかどうかを確認します |
|
パスがディレクトリではなくファイルであるかどうかを確認します |
|
指定されたパスにオブジェクトが存在するかどうかを確認します |
|
ファイルサイズを返します |
|
ファイルの内容全体をバイト配列として返します。 |
|
ファイルの内容全体を文字列として返します。 |
|
ファイルの内容全体を文字列のリストとして返します。 |
|
バイト配列をファイルに書き込みます |
|
文字列をファイルに書き込みます |
|
指定されたディレクトリからファイル (およびサブディレクトリ) のコレクションを返します。 |
2. ファイルとディレクトリの作成
ファイルとディレクトリは非常に簡単に作成できます。いくつかの例を挙げて納得してみましょう。
コード | ノート |
---|---|
|
ファイルを作成します |
|
ディレクトリを作成します |
|
ディレクトリと必要なすべてのサブディレクトリが存在しない場合は作成します。 |
3. コピー、移動、削除
ファイルのコピー、移動、削除も同様に簡単です。これはディレクトリにも当てはまりますが、ディレクトリは空である必要があります。
コード | ノート |
---|---|
|
ファイルをコピーします |
|
ファイルの移動と名前変更 |
|
ファイルを削除します |
4. ファイルの種類と存在の確認
他の人から提供されたパスがある場合、それがファイルなのかディレクトリなのかを知りたくなるでしょう。そして一般に、そのようなファイル/ディレクトリは存在するのでしょうか?
これにも特別な方法があります。ファイルの長さを簡単に調べることもできます。
コード | ノート |
---|---|
|
|
|
|
|
|
|
|
5. ファイルの内容の操作
最後に、ファイルの内容の読み取りまたは書き込みを簡単にする一連のメソッドがあります。例:
コード | 説明 |
---|---|
|
ファイルの内容を文字列のリストとして読み取ります。 文字列を表示する |
6. ディレクトリの内容を取得する
最も興味深い方法がまだ残っています。指定されたディレクトリ内のファイルとサブディレクトリを取得するために使用されます。
newDirectoryStream()
特別なオブジェクトを返すメソッドについて話していますDirectoryStream<Path>
。これには、指定されたディレクトリのすべてのファイルとサブディレクトリを取得するために使用できるイテレータ (!) があります。
これは思ったよりも簡単です。
コード | 説明 |
---|---|
|
ファイルのリストを含むオブジェクトを取得する ファイルのリストをループする |
オブジェクトDirectoryStream<Path>
には 2 つのプロパティがあります。まず、ファイル パスを返すイテレータがあり、for-each
ループ内でこのオブジェクトを使用できます。
次に、このオブジェクトはデータ ストリームであるため、close()
メソッドを使用して明示的に閉じるか、try-with-resources
ブロック内で使用を宣言する必要があります。
7.Files.newInputStream
方法
Java 5 以降、FileInputStream
およびFileOutputStream
クラスは非推奨になりました。欠点の 1 つは、これらのクラスのオブジェクトが作成されると、すぐにディスク上にファイルが作成されてしまうことでした。また、ファイル作成に関連するすべての例外がスローされる可能性があります。
後に、これは最善の決定ではないと認識されました。したがって、ファイル オブジェクトの作成にはユーティリティ クラスのメソッドを使用することをお勧めしますjava.nio.Files
。
ファイルを作成するための古いアプローチと新しいアプローチの比較は次のとおりです。
前 |
---|
|
後 |
|
そして、同様の置き換えがありますFileOutputStream
:
前 |
---|
|
後 |
|
GO TO FULL VERSION