TIL

Today I Leaned. 仕事で知ったことや、つまづいたことを時間のある時にメモしておく

java.io.File を使う

java.io.File

Javaでファイル操作を行うために使う

以下の環境で実行したとする

C:\practice\drill\IO>dir
 ドライブ C のボリューム ラベルは Windows です
 ボリューム シリアル番号は 7023-BD0B です

 C:\practice\drill\IO のディレクトリ

2017/08/09  17:42    <DIR>          .
2017/08/09  17:42    <DIR>          ..
2017/03/07  11:48             1,460 Drill1.java

インスタンス生成

File file = new File(".\\Drill1.java");

インスタンスを生成するファイルのパスを文字列で渡す

ファイルサイズ取得

System.out.println(file.length());

出力結果

1460

ファイルサイズはFile#lenght()で取得できる。単位はバイト

保存ディレクトリのパスを取得

System.out.println(file.getAbsolutePath());

出力結果

C:\practice\drill\IO\.\Drill1.java

File#getAbsolutePath()絶対パスが取得できる

テキストを読み込む

  1. FileReaderインスタンス生成
  2. BufferedReaderインスタンス生成時にFileReaderを渡す
  3. BufferedReader#ready()で次の行があるか確認
  4. BufferedReader#readLine()で1行分を読み込む
BufferedReader br = null;
try {
    br = new BufferedReader(new FileReader(".\\Drill1.java"));
    while(br.ready()) {
        System.out.println(br.readLine());
    }
}catch(IOException e) {
    e.printStackTrace();
}finally {
    try {
        if(br != null) {
            br.close();
        }
    }catch(IOException e) {
        e.printStackTrace();
    }       
}

ディレクトリを作成

File testDir = new File(".\\test");
testDir.mkdir();

実行結果

C:\practice\drill\IO>dir
 ドライブ C のボリューム ラベルは Windows です
 ボリューム シリアル番号は 7023-BD0B です

 C:\practice\drill\IO のディレクトリ

2017/08/09  17:42    <DIR>          .
2017/08/09  17:42    <DIR>          ..
2017/03/07  11:48             1,460 Drill1.java
2017/08/09  17:57    <DIR>          test

File#mkdir()ディレクトリの作成ができる

ディレクトリの階層を作成

File deepDir = new File(".\\parent2\\child\\grandchild");
deepDir.mkdirs();

上記のコードを実行すると、階層構造のディレクトリを作成する

参考文献

File (Java Platform SE 8 )