JavaA2Z

KAB-studio > プログラミング > JavaA2Z > FileInputStreamとは

FileInputStream

日本語 書類入力流れ
英語 file input stream
ふりがな ふぁいるいんぷっとすとりーむ
フリガナ ファイルインプットストリーム

解説

J2SEに含まれるクラスのひとつ。パッケージも含めたクラス名java.io.FileInputStream。
ストリームクラスInputStreamクラスサブクラスであり、バイト入力ストリームクラスである。
バイト入力ストリームクラスの中では「入力元」に位置する。
対になる出力側のクラスFileOutputStreamクラスである。
 
ファイルを入力元とするクラス
ファイルから1バイトずつ取得するためのクラス
何も変換をわず、素直に1バイトずつ取得するため、バイナリーファイルの取得に向いているが、テキストファイルの場合、改行コードの変換等がわれないため不便である。その場合には文字入力ストリームクラスであるFileReaderクラスの使用を勧める。
 
FileInputStreamクラスコンストラクタに「本当の入力元」となるファイルを指定することで、そのファイルを開く。
FileInputStreamクラスのread()メソッドを用いて入力元のファイルから各バイトを取得する。この時、取得したバイトデータはbyteではなくintとして返される。だが実際にはbyteの範囲内の値が返されている
ファイルの終端に達した時、read()メソッドは「-1」を返す。この-1を返す意味もあり、read()メソッドintを返す。
処理終了後は、FileInputStreamクラスclose()メソッド呼び出す。このclose()メソッドは「ファイルを閉じる」という重要な処理をうため、必ず呼ばれるようにfinally内でう。

参考サイト


(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
import java.io.FileInputStream;
import java.io.IOException;

public class Sample
{
    public static void main( String[] args )
    {
        // 入力ファイルの絶対パス。
        String inputFilePath = "D:/from.txt";
        // このファイルには以下のように記述してください。
/*
ABC
*/

        // FileInputStreamクラスの参照型変数。
        // ここで作っておくのはfinallyでclose()メソッドを呼ぶためです。
        FileInputStream fileInputStream = null;
        try
        {
            // まずFileInputStreamクラスを作ります。
            // このクラス経由でファイルから文字列を取得します。
            fileInputStream = new FileInputStream( inputFilePath );

            while( true )
            {
                // 1バイト取得します。
                int i = fileInputStream.read();
                if( i == -1 )
                {
                    // -1が返されてきたら終わりです。
                    break;
                }

                // 出力します。
                System.out.println( "0x" + Integer.toHexString( i ) + " ( " + i + " )" );
            }
            // 0x41 ( 65 )
            // 0x42 ( 66 )
            // 0x43 ( 67 )

            // 「ABC」のそれぞれの文字コードが出力されています。
        }
        catch( IOException e )
        {
            // ファイルが無かった場合等に、この
            // IOException例外が投げられます。
            e.printStackTrace();
        }
        finally
        {
            // ファイルを扱ったら、最後にclose()メソッドを呼んで
            // 後処理をします。また、これは必ず行うため、
            // finally内で行います。
            try
            {
                if( fileInputStream != null )
                {
                    fileInputStream.close();
                }
            }
            catch( IOException e )
            {
                // close()メソッドはIOExceptionがthrows指定されているので
                // 一応受け取ります。
                e.printStackTrace();
            }
        }
    }
}
// Sample.java
import java.io.FileInputStream;
import java.io.IOException;

public class Sample
{
    public static void main( String[] args )
    {
        // 入力ファイルの絶対パス。
        String inputFilePath = "D:/from.txt";
        // このファイルには以下のように記述してください。
/*
ABC
*/

        // FileInputStreamクラスの参照型変数。
        // ここで作っておくのはfinallyでclose()メソッドを呼ぶためです。
        FileInputStream fileInputStream = null;
        try
        {
            // まずFileInputStreamクラスを作ります。
            // このクラス経由でファイルから文字列を取得します。
            fileInputStream = new FileInputStream( inputFilePath );

            while( true )
            {
                // 1バイト取得します。
                int i = fileInputStream.read();
                if( i == -1 )
                {
                    // -1が返されてきたら終わりです。
                    break;
                }

                // 出力します。
                System.out.println( "0x" + Integer.toHexString( i ) + " ( " + i + " )" );
            }
            // 0x41 ( 65 )
            // 0x42 ( 66 )
            // 0x43 ( 67 )

            // 「ABC」のそれぞれの文字コードが出力されています。
        }
        catch( IOException e )
        {
            // ファイルが無かった場合等に、この
            // IOException例外が投げられます。
            e.printStackTrace();
        }
        finally
        {
            // ファイルを扱ったら、最後にclose()メソッドを呼んで
            // 後処理をします。また、これは必ず行うため、
            // finally内で行います。
            try
            {
                if( fileInputStream != null )
                {
                    fileInputStream.close();
                }
            }
            catch( IOException e )
            {
                // close()メソッドはIOExceptionがthrows指定されているので
                // 一応受け取ります。
                e.printStackTrace();
            }
        }
    }
}

この単語を含むページ

「みだし」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2005/11/07
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。