ファイル
ファイルサイズ(容量)を取得
File.lengthメソッド
public long length()
・ファイルサイズの取得 パラメータ なし 戻り値 この抽象パス名に指定されているファイルの長さを返します。単位はバイト(byte)
Javaソースコード
FileGetSize1.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026
import java.io.File; public class FileGetSize1 { public static void main( String[] args ) { String filePath; // ファイル名 // 入力した引数が1つ以上かを調べる if ( 1 > args.length ) { // 入力した引数が1つ未満の場合、使用方法を表示する System.out.println( "FileGetSize1 [ファイル名]" ); return; } // パラメータを検索パスに代入 filePath = args[ 0 ]; // Fileクラスのオブジェクトにファイル名を対応 File file = new File( filePath ); // ファイルサイズの出力 long filesize = file.length(); System.out.println( "ファイル名 : " + filePath ); System.out.println( "ファイルサイズ(byte) : " + filesize ); } }
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis FileGetSize1.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac FileGetSize1.java
実行例(指定したファイルが存在する場合)
c:\talavax\javasample>java FileGetSize1 c:\samplepath\sample1.txt
出力結果(指定したファイルが存在する場合)
ファイル名 : c:\samplepath\sample1.txt ファイルサイズ(byte) : 823
次に指定したファイルが存在しない場合の結果をみていきましょう。
実行例(指定したファイルが存在しない場合)
C:\talavax\javasample>java FileGetSize1 c:\samplepath\xxxxx.txt
出力結果(指定したファイルが存在しない場合)
ファイル名 : c:\samplepath\xxxxx.txt ファイルサイズ(byte) : 0
Javaソースコード - ファイルの有無を判定
ファイルが存在しないのか、0バイトのファイルを指定したのかの区別を付けたい場合は、上記のソースコード(FileGetSize1)は使用できません。
区別をする場合は、以下のソースコードを参考にしてください。
FileGetSize2.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031
import java.io.File; public class FileGetSize2 { public static void main( String[] args ) { String filePath; // ファイル名 // 入力した引数が1つ以上かを調べる if ( 1 > args.length ) { // 入力した引数が1つ未満の場合、使用方法を表示する System.out.println( "FileGetSize2 [ファイル名]" ); return; } // パラメータを検索パスに代入 filePath = args[ 0 ]; // Fileクラスのオブジェクトにファイル名を対応 File file = new File( filePath ); // ファイルサイズの出力(ファイルの有無を確認) System.out.println( "ファイル名 : " + filePath ); if ( !file.exists() ) System.out.println( "ファイルが存在しません!" ); else { long filesize = file.length(); System.out.println( "ファイルサイズ(byte) : " + filesize ); } } }
021 022 023 024 025 026 027 028 029
// ファイルサイズの出力(ファイルの有無を確認) System.out.println( "ファイル名 : " + filePath ); if ( !file.exists() ) System.out.println( "ファイルが存在しません!" ); else { long filesize = file.length(); System.out.println( "ファイルサイズ(byte) : " + filesize ); }
existsメソッドでファイルの有無を判定し、その結果で処理を分岐しています。
File.existsメソッド
public boolean exists()
・ファイルが存在するかどうかを判定 パラメータ なし 戻り値 この抽象パス名が示すファイルが存在するかどうかを判定します。
Javaソースコード - ファイルサイズを取得するメソッドを作成
FileGetSize3.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042
import java.io.File; public class FileGetSize3 { // ファイルを取得するメソッド // 戻り値が0未満の場合、ファイルが存在しない static long getFileSize( String filePath ) { // Fileクラスのオブジェクトにファイル名を対応 File file = new File( filePath ); // ファイルの有無を確認 if ( !file.exists() ) return -1; // ファイルサイズを戻す return file.length(); } // メイン public static void main( String[] args ) { String filePath; // ファイル名 // 入力した引数が1つ以上かを調べる if ( 1 > args.length ) { // 入力した引数が1つ未満の場合、使用方法を表示する System.out.println( "FileGetSize3 [ファイル名]" ); return; } // パラメータを検索パスに代入 filePath = args[ 0 ]; // ファイルサイズの取得 long filesize = getFileSize( filePath ); System.out.println( "ファイル名 : " + filePath ); if ( 0 > filesize ) System.out.println( "ファイルサイズの取得に失敗!" ); else System.out.println( "ファイルサイズ(byte) : " + filesize ); } }
004 005 006 007 008 009 010 011 012 013 014 015 016
// ファイルを取得するメソッド // 戻り値が0未満の場合、ファイルが存在しない static long getFileSize( String filePath ) { // Fileクラスのオブジェクトにファイル名を対応 File file = new File( filePath ); // ファイルの有無を確認 if ( !file.exists() ) return -1; // ファイルサイズを戻す return file.length(); }
以上です。
関連コンテンツ
ファイルは、データを取り扱うとき管理単位の一つで、ハードディスク、SSD,USBメモリ、CD/DVD/ブルーレイなどの記憶媒体に保存するときに使われます。詳しくは、記事をご覧ください。
2022.08.12