Javaの変数にファイルの内容を割り当てる方法

Javaでファイルコンテンツを変数に割り当てる方法

ほとんどの人はファイルの内容を読み、1行ずつStringBufferまたはStringに割り当てます。 興味を引くかもしれないもう1つのトリックがあります。1つのJavaのステートメントでファイルコンテンツ全体を変数に割り当てる方法です。

この例では、DataInputStreamを使用してすべてのコンテンツをバイトに変換し、変換されたバイトで文字列変数を作成します。

package com.example.io;

import java.io.DataInputStream;
import java.io.FileInputStream;

public class App{

    public static void main (String args[]) {

    try{

             DataInputStream dis =
            new DataInputStream (
                 new FileInputStream ("c:\\logging.log"));

         byte[] datainBytes = new byte[dis.available()];
         dis.readFully(datainBytes);
         dis.close();

         String content = new String(datainBytes, 0, datainBytes.length);

         System.out.println(content);

    }catch(Exception ex){
        ex.printStackTrace();
    }

  }
}

出力

これにより、すべての「logging.log」ファイルの内容が出力されます。

10:21:29,425  INFO Version:15 - Hibernate Annotations 3.3.0.GA
10:21:29,441  INFO Environment:509 - Hibernate 3.2.3
10:21:29,441  INFO Environment:542 - hibernate.properties not found
10:21:29,456  INFO Environment:676 - Bytecode provider name : cglib
10:21:29,456  INFO Environment:593 - using JDK 1.4 java.sql.Timestamp handling
............