注目記事

【Javaコード入門】ストリーム_⑥Fileクラス

ファイルの操作 – Fileクラス

File(String path)
 path:ファイルのパス

Fileクラスは、フォルダー/ファイルの情報を管理すると共に、フォルダー/ファイルを操作するための手段を提供するクラスです。FileInputStream/FileOutputStreamなど、ファイルを扱うためのクラス(コンストラクター)にも、Fileオブジェクト経由で操作対象のファイルを引き渡すことが可能です。
Fileクラスで利用できる主なメソッドには、以下のようなものがあります。

Fileクラスの主なメソッド
メソッド 概要
boolean canExecute() ファイルが実行可能か
boolean canRead() ファイルが読み取り可能か
boolean canWrite() ファイルが書き込み可能か
boolean createNewFile() 新しいファイルを生成(ファイルが存在しない場合だけ)
static File createTempFile (String prefix, String suffix) 指定された接頭辞prefix/接尾辞suffixを利用して一時ファイルを生成
boolean delete() ファイルを削除
void deleteOnExit() 仮想マシン終了時にファイルが削除されるようマーク
boolean exists() ファイルが存在するかどうかを判定
String getAbsolutePath() 絶対パスを取得
String getName() ファイル/フォルダー名を取得
String getParent() 親フォルダー名を取得
File getParentFile() 親フォルダーを取得
String getPath() パスを取得
boolean isAbsolute() 絶対パスかどうかを判定
boolean isDirectory() フォルダーかどうかを取得
boolean isFile() ファイルかどうかを取得
boolean isHidden() 隠しファイルかどうかを取得
long lastModified() 最終更新日を取得
long length() ファイルサイズを取得
String list() フォルダー配下のファイルの配列を取得
boolean mkdir() フォルダーを作成
boolean renameTo(File dest) 指定されたファイルにリネーム

たとえば以下は、指定されたフォルダーから配下のファイルを取り出して、ファイル名/ファイルサイズ/最終更新日を列挙する例です。

StreamFile.java
  1. package com.example.mynavi.stream;
  2.  
  3. import java.io.File;
  4. import java.util.Date;
  5.  
  6. public class StreamFile {
  7.  
  8.   public static void main(String args) {
  9.     var dir = new File("C:/data");
  10.     for (var f : dir.listFiles()) {
  11.       if (f.isFile()) {
  12.         System.out.println( f.getName() + "(" +
  13.           f.length() / 1024 + "KB)[" +
  14.           new Date(f.lastModified()) + "]");
  15.       }
  16.     }
  17.   }
  18. }

  1. Person.ser(1KB)[Sun Jan 05 10:52:44 JST 2020
  2. sample.jpg(16KB)[Sun Jul 29 15:43:37 JST 2018
  3. sample.txt(1KB)[Sun Jan 05 10:50:16 JST 2020
  4. ...後略...
ストリーム_目次
ストリーム
FileInputStream/FileOutputStreamクラス
InputStreamReader/OutputStreamWriterクラス
BufferedReader/BufferedWriterクラス
ObjectInputStream/ObjectOutputStreamクラス
Fileクラス

監修

山田祥寛(有限会社 WINGSプロジェクト)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NEC にてシステム企画業務に携わるが、2003年 4 月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト(https://wings.msn.to/)」の代表でもある。主な著書に『改訂 3 版JavaScript 本格入門』(技術評論社)、「独習シリーズ(C#・Python・PHP・Ruby・JSP&サーブレットなど)」(翔泳社)、「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravel など)」(Amazon Kindle)など。売り上げの累計は100万部を超える。