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