Java FileInputStream完全ガイド:実践的なコード例付き
Java FileInputStreamクラス
JavaのFileInputStreamを解説し、コアメソッド、実用的な使い方、実例を紹介します。
FileInputStreamクラスはjava.ioパッケージの一部で、ファイルから生のバイトデータを読み取ることを可能にします。抽象InputStreamクラスを拡張し、ファイルI/Oの具象実装を提供します。
FileInputStreamの作成
クラスをインポートし、ファイルパスまたはFileオブジェクトでインスタンス化します。
1. ファイルパスを使用
FileInputStream input = new FileInputStream("path/to/file.txt");
指定パスのファイルに紐づいたストリームを開きます。
2. Fileオブジェクトを使用
File file = new File("file.txt");
FileInputStream input = new FileInputStream(file);
FileInputStreamの主要メソッド
このクラスはInputStreamからの抽象メソッドをすべて実装し、独自のメソッドもいくつか追加しています。最も頻繁に使用されるものを以下に示します。
read()
int read()– 1バイト読み取り、intとして返す(EOFなら-1)int read(byte[] b)– 提供された配列にバイトを格納int read(byte[] b, int off, int len)– 最大lenバイトをbのオフセットoffから読み取り
例:テキストファイルをバイト単位で読み取り
import java.io.FileInputStream;
public class Main {
public static void main(String[] args) {
try (FileInputStream input = new FileInputStream("input.txt")) {
System.out.println("ファイル内のデータ:");
int byteRead;
while ((byteRead = input.read()) != -1) {
System.out.print((char) byteRead);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
出力
ファイル内のデータ: This is a line of text inside the file.
available()
ブロックせずに読み取れるバイト数を返します。
try (FileInputStream input = new FileInputStream("input.txt")) {
System.out.println("開始時の利用可能バイト数: " + input.available());
input.read();
input.read();
input.read();
System.out.println("3回読み取り後の利用可能バイト数: " + input.available());
}
出力
開始時の利用可能バイト数: 39 3回読み取り後の利用可能バイト数: 36
skip()
指定バイト数だけストリームを進め、それらを破棄します。
try (FileInputStream input = new FileInputStream("input.txt")) {
input.skip(5); // "This "をスキップ
int byteRead;
while ((byteRead = input.read()) != -1) {
System.out.print((char) byteRead);
}
}
出力
is a line of text inside the file.
close()
ストリームを閉じ、システムリソースを解放。try-with-resourcesブロック(上記例参照)を使用するとclose()が自動的に呼ばれます。
FileInputStreamのその他のメソッド
| メソッド | 説明 |
|---|---|
finalize() | ガベージコレクション前にclose()が呼び出されることを保証 |
getChannel() | ストリームに関連付けられたFileChannelを返す |
getFD() | 基盤となるファイルディスクリプタを提供 |
mark(int readlimit) | 現在位置をマークして後でリセット可能にする |
reset() | ストリームを最後にマークした位置にリセット |
詳細については公式Javaドキュメントを参照:Java FileInputStream (公式Javaドキュメント)
Java
- Javaのfinalキーワード完全解説:変数、メソッド、クラスでの活用法
- Java instanceof演算子完全ガイド:基本から継承・インターフェースまで
- Java Staticネストクラスの理解:用法、違い、実例
- Java無名インナークラス完全ガイド:定義、構文、実践例
- Javaシングルトンパターン完全解説:安全な実装と活用法
- Javaリフレクション完全ガイド:実行時のクラス・メソッド・フィールド検査
- Java ObjectOutputStream完全ガイド:シリアル化、メソッド、実践例
- Java BufferedReader完全ガイド:効率的な文字ストリーム処理
- Java Scanner完全ガイド:実践例で学ぶ入力処理
- Javaジェネリクス完全ガイド:再利用可能で型安全なコードの構築
- Javaファイル操作のマスター:java.ioによる作成・読み取り・書き込み・削除