Javaプログラミング学習サイト ゆるゆるプログラミング

2020/03/23 公開

・ファイルサイズの取得

指定したファイルファイルサイズ(容量)を取得する方法を紹介します。

ここでは、Fileクラスのlength()メソッドを使ってファイルサイズを取得します。取得するサイズの単位はバイト(byte)です。

File.lengthメソッド

public long length()
■ファイルサイズの取得

  パラメータ なし

  戻り値     この抽象パス名に指定されているファイルの長さを返します。単位はバイト(byte)

それでは、length()メソッドを使ったJavaソースコードを見ていきましょう。

以下は、パラメーターでにファイル名を渡して、そのファイルサイズをコンソール出力するものです。

FileGetSize1.java ← クリックしてダウンロードページに移動
001:    import java.io.File;
002:    
003:    public class FileGetSize1 {
004:    	public static void main( String[] args ) {
005:    		String filePath;	// ファイル名
006:    
007:    		// 入力した引数が1つ以上かを調べる
008:    		if ( 1 > args.length ) {
009:    			// 入力した引数が1つ未満の場合、使用方法を表示する
010:    			System.out.println(
011:    				 "FileGetSize1 [ファイル名]" );
012:    			return;
013:    		}
014:    
015:    		// パラメータを検索パスに代入
016:    		filePath  = args[ 0 ];
017:    
018:    		// Fileクラスのオブジェクトにファイル名を対応
019:    		File file = new File( filePath );
020:    
021:    		// ファイルサイズの出力
022:    		long filesize = file.length();
023:    		System.out.println( "ファイル名 : " + filePath );
024:    		System.out.println( "ファイルサイズ(byte) : " + filesize );
025:    	}
026:    }

FileGetSize1を実行(ファイルが存在する場合)

C:\talavax\javasample>java FileGetSize1 c:\samplepath\sample1.txt

出力結果

ファイル名 : c:\samplepath\sample1.txt
ファイルサイズ(byte) : 823

指定したファイルが存在する場合、ファイルサイズが出力されます。

次に指定したファイルが存在しない場合の結果をみていきましょう。

FileGetSize1を実行(ファイルが存在しない場合)

C:\talavax\javasample>java FileGetSize1 c:\samplepath\xxxxx.txt

出力結果

ファイル名 : c:\samplepath\xxxxx.txt
ファイルサイズ(byte) : 0

指定したファイルが存在しない場合、ファイルサイズが0で出力されます。

ファイルが存在しないのか、0バイトファイルを指定したのかの区別を付けたい場合はこのプログラムは使用できません。区別をする場合は、以下のソースコードを参考にしてください。

FileGetSize2.java ← クリックしてダウンロードページに移動
001:    import java.io.File;
002:    
003:    public class FileGetSize2 {
004:    	public static void main( String[] args ) {
005:    		String filePath;	// ファイル名
006:    
007:    		// 入力した引数が1つ以上かを調べる
008:    		if ( 1 > args.length ) {
009:    			// 入力した引数が1つ未満の場合、使用方法を表示する
010:    			System.out.println(
011:    				 "FileGetSize2 [ファイル名]" );
012:    			return;
013:    		}
014:    
015:    		// パラメータを検索パスに代入
016:    		filePath  = args[ 0 ];
017:    
018:    		// Fileクラスのオブジェクトにファイル名を対応
019:    		File file = new File( filePath );
020:    
021:    		// ファイルサイズの出力(ファイルの有無を確認)
022:    		System.out.println( "ファイル名 : " + filePath );
023:    		if ( !file.exists() )
024:    			System.out.println( "ファイルが存在しません!" );
025:    		else
026:    		{
027:    			long filesize = file.length();
028:    			System.out.println( "ファイルサイズ(byte) : " + filesize );
029:    		}
030:    	}
031:    }

Fileクラスexistsメソッドで、ファイルの有無を判定し、結果をコンソール出力しています。

021:    		// ファイルサイズの出力(ファイルの有無を確認)
022:    		System.out.println( "ファイル名 : " + filePath );
023:    		if ( !file.exists() )
024:    			System.out.println( "ファイルが存在しません!" );
025:    		else
026:    		{
027:    			long filesize = file.length();
028:    			System.out.println( "ファイルサイズ(byte) : " + filesize );
029:    		}

existsメソッドファイルの有無を判定し、その結果で処理を分岐しています。

File.existsメソッド

public boolean exists()
■ファイルが存在するかどうかを判定

  パラメータ なし

  戻り値     この抽象パス名が示すファイルが存在するかどうかを判定します。

さらに、ファイルを取得する部分をメソッドにしたものは以下のソースコードです。

FileGetSize3.java ← クリックしてダウンロードページに移動
001:    import java.io.File;
002:    
003:    public class FileGetSize3 {
004:    	// ファイルを取得するメソッド
005:    	// 戻り値が0未満の場合、ファイルが存在しない
006:    	static long getFileSize( String filePath )
007:    	{
008:    		// Fileクラスのオブジェクトにファイル名を対応
009:    		File file = new File( filePath );
010:    
011:    		// ファイルの有無を確認
012:    		if ( !file.exists() ) return -1;
013:    
014:    		// ファイルサイズを戻す
015:    		return file.length();
016:    	}
017:    
018:    	// メイン
019:    	public static void main( String[] args ) {
020:    		String filePath;	// ファイル名
021:    
022:    		// 入力した引数が1つ以上かを調べる
023:    		if ( 1 > args.length ) {
024:    			// 入力した引数が1つ未満の場合、使用方法を表示する
025:    			System.out.println(
026:    				 "FileGetSize3 [ファイル名]" );
027:    			return;
028:    		}
029:    
030:    		// パラメータを検索パスに代入
031:    		filePath  = args[ 0 ];
032:    
033:    		// ファイルサイズの取得
034:    		long filesize = getFileSize( filePath );
035:    
036:    		System.out.println( "ファイル名 : " + filePath );
037:    		if ( 0 > filesize )
038:    			System.out.println( "ファイルサイズの取得に失敗!" );
039:    		else
040:    			System.out.println( "ファイルサイズ(byte) : " + filesize );
041:    	}
042:    }

以下は、ファイルを取得するメソッドだけを抜き出したものです。

004:    	// ファイルを取得するメソッド
005:    	// 戻り値が0未満の場合、ファイルが存在しない
006:    	static long getFileSize( String filePath )
007:    	{
008:    		// Fileクラスのオブジェクトにファイル名を対応
009:    		File file = new File( filePath );
010:    
011:    		// ファイルの有無を確認
012:    		if ( !file.exists() ) return -1;
013:    
014:    		// ファイルサイズを戻す
015:    		return file.length();
016:    	}

このgetFileSizeメソッドファイル名を渡すと、ファイルサイズがバイト単位で返ってきます。指定したファイルが存在しない場合、-1を返すようにしています。

以上です。

■関連コンテンツ

ファイル ファイルの形式の解説
ファイルの有無を判定 ファイルの有無の判定について解説
値のコンソール表示 print()、println()とは?
メモリ容量の取得 Java仮想マシンのメモリ容量の取得方法を解説
ドライブの容量の取得 ドライブの空きは?
メソッド メソッドについて解説
条件による処理の分岐に使用するif文について解説-画像

if文

条件による処理の分岐に使用するif文について解説

■新着情報

2022.07.07 外部プログラムの実行 exeファイル実行
2022.07.06 完全数 6=1+2+3

■広告

 

 

 

 

 

スッキリわかるJava入門第3版 [ 中山清喬 ]

価格:2,860円
(2021/6/18 14:32時点)
感想(6件)

 

 

 

 

Topへ