【Java】lengthでファイルのサイズ(size)を取得する!
ファイルのサイズ(size)を取得するにはFileクラスのlengthメソッドを使用します。
Fileクラスのlengthメソッドはファイルのサイズをバイト単位で取得するメソッドとなります。
lengthメソッドは、ファイルの大きさを知りたい場合や、書き込みを行う際にファイルが重くならないようファイルのサイズを条件として書き込む対象のファイルを設定する場合などに使用することができます。
今回はFileクラスのlengthメソッドを使って以下の場合でファイルのサイズ(size)を取得していきます。
⚫︎ サイズを取得する対象のファイルが存在する場合
⚫︎ サイズを取得する対象のファイルが存在しない場合
また、Filesクラスのsizeメソッドを使ってファイルのサイズ(size)を取得する方法についても紹介していきます。
目次
lengthメソッドとは
Fileクラスのlengthメソッドはファイルのサイズをバイト単位で取得するメソッドとなります。
lengthメソッドの書き方
lengthメソッドの構文は下記となります。
1 2 3 |
import java.io.File; ファイル名.length() |
まず、Fileクラスのlengthメソッドを使用するためにFileクラスをインポートします。
そして、lengthメソッドの前にファイル名を指定して呼び出すことで、メソッドの前に指定したファイルのサイズを取得することができます。
ファイルのサイズを取得するサンプルコード
ファイルのサイズを取得するサンプルコードを紹介します。
対象のファイルが存在する場合
Main.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// ファイルのサイズを取得する import java.io.File; public class Main { public static void main(String[] args) throws Exception { // 対象のファイル File file1 = new File("c:/study/objectFile.txt"); // ファイルのサイズを取得 System.out.println("ファイルサイズ:" + file1.length()) } } |
出力結果
ファイルサイズ:346
「C:¥study」以下にobjectFile.txtを用意して、Main.javaを実行するとlengthメソッドによって対象のファイルのサイズを取得します。
対象のファイルが存在しない場合
Main.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// ファイルのサイズを取得する import java.io.File; public class Main { public static void main(String[] args) throws Exception { // 対象のファイル File file2 = new File("c:/study/noObjectFile.txt"); // ファイルのサイズを取得 System.out.println("ファイルサイズ:" + file2.length()); } } |
出力結果
ファイルサイズ:0
存在しないファイルを指定し、Main.javaを実行するとlengthメソッドはlong型の0を返します。
NIO.2(Filesクラス)でファイルのサイズを取得する場合
NIO.2(Filesクラス)でファイル/ディレクトリを移動するにはFilesクラスのsizeメソッドを使用します。
NIO.2とはJava7で導入された「java.nio.file」パッケージとそのサブパッケージとを合わせたものであり、NIO.2のFilesクラスを使用することでとても簡単にファイル処理を行うことができます。
そのため、Filesクラスのsizeメソッドを呼び出すことによって、Fileクラスのlengthメソッドと同様にファイルのサイズをバイト単位で取得することができます。
しかし、対象となるファイルが存在しない場合は、lengthメソッドと違って例外が発生します。
対象のファイルが存在する場合
Main.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// Filesクラスでファイルのサイズを取得する import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class Main { public static void main(String[] args) throws Exception { // 対象のファイル Path path1 = Paths.get("ObjectFile.txt"); // ファイルのサイズを取得 System.out.println("ファイルサイズ:" + Files.size(path1)); } } |
出力結果
ファイルサイズ:346
対象のファイルが存在しない場合
Main.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// Filesクラスでファイルのサイズを取得する import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class Main { public static void main(String[] args) throws Exception { // 対象のファイル Path path2 = Paths.get("noObjectFile.txt"); // ファイルのサイズを取得 System.out.println("ファイルサイズ:" + Files.size(path2)); } } |
出力結果
Exception in thread “main” java.nio.file.NoSuchFileException: noObjectFile.txt
今回のポイント
lengthでファイルのサイズを取得
ファイルのサイズを取得するにはFileクラスのlengthメソッドを使用する
⚫︎ Fileクラスのlengthメソッドでファイルのサイズを取得する
⚫︎ lengthメソッドの前に対象のファイルを指定し、メソッドを呼び出すことで対象のファイルのサイズをバイト単位で取得する
⚫︎ 存在しないファイルを指定した場合、lengthメソッドはlong型の「0」を返す
⚫︎ Filesクラスでファイルのサイズを取得するにはsizeメソッドを使用する
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。