ホームページ  >  記事  >  Java  >  JavaのFileInputStreamとは何ですか? FileInputStream ソースコード分析

JavaのFileInputStreamとは何ですか? FileInputStream ソースコード分析

不言
不言転載
2018-10-27 13:50:402581ブラウズ

この記事では、Java の FileInputStream とは何ですか? FileInputStream のソースコード解析は参考になると思います。

FileInputStream はファイルシステム内のファイルからバイトを取得します。ファイルに関しては、画像データなどの元のバイトストリームを読み取るために使用されます。文字型ストリームの場合はFileReaderをご利用ください。

FileInputStream は、InputStream から継承されます。 まず、FileInputStream には 3 つのコンストラクターがあります。

FileInputStream(File file) // コンストラクター 1: 「ファイル オブジェクト」に対応する「ファイル入力ストリーム」を作成します。 "
FileInputStream(FileDescriptor fd) // コンストラクター 2: 「ファイル記述子」に対応する「ファイル入力ストリーム」を作成します。
FileInputStream(String path) // コンストラクター 3: 「ファイル」を作成します (パスはパスです) " 対応する「ファイル入力ストリーム」

使用法:

JavaのFileInputStreamとは何ですか? FileInputStream ソースコード分析

JavaのFileInputStreamとは何ですか? FileInputStream ソースコード分析

JavaのFileInputStreamとは何ですか? FileInputStream ソースコード分析

要約: これら 3 つのコンストラクターを通じて、FileInputStream (FileDescriptor fd) をコンストラクター 1 およびコンストラクター 3 を通じて取得したインスタンスと同じインスタンスにすることができます

public int read() //この入力ストリームからデータバイトを読み取ります
public int read(byte b[]) //この入力ストリームから複数のバイトをバイト配列に読み取ります Medium
public int read( byte b[], int off, int len) //この入力ストリームから最大 len バイトをバイト配列に読み取ります

#Test read()


JavaのFileInputStreamとは何ですか? FileInputStream ソースコード分析

JavaのFileInputStreamとは何ですか? FileInputStream ソースコード分析

コードの実装は非常に単純で、ファイルから直接ローカルのネイティブ read0() メソッドが呼び出され、入力からバイトを読み取ります。ストリーム

テスト読み取り(バイト b[])

JavaのFileInputStreamとは何ですか? FileInputStream ソースコード分析

JavaのFileInputStreamとは何ですか? FileInputStream ソースコード分析

コードの実装も比較的単純です。また、ローカルのネイティブ readBytes() メソッドを try で呼び出し、ファイル入力ストリームから最大 b.length バイトをバイト配列 b

Test read( byte b[]、int off、int len)

JavaのFileInputStreamとは何ですか? FileInputStream ソースコード分析

JavaのFileInputStreamとは何ですか? FileInputStream ソースコード分析
コードの実装は int read(byte b[]) メソッドと同じで、最大 len バイトをファイル入力ストリームからバイト配列 b に直接読み取ります。

int available() // 「読み取り可能な残りのバイト数」または「スキップバイト数」を返します。ローカル メソッド

JavaのFileInputStreamとは何ですか? FileInputStream ソースコード分析

##この方法によれば、byte[] 配列インスタンスを効果的に作成して、メモリ領域の使用を最大限に活用できます。Java の世界では、1 つの中国語文字が 3 バイトを占有し、1 つの中国語文字が占有します。文字は 3 バイトを占め、タイトル記号も 3 バイトを占めます。

long Skip(long byteCount) // byteCount バイトをスキップするローカル メソッド

JavaのFileInputStreamとは何ですか? FileInputStream ソースコード分析

##void close()// 「ファイル入力ストリーム」を閉じる JavaのFileInputStreamとは何ですか? FileInputStream ソースコード分析

以上がJavaのFileInputStreamとは何ですか? FileInputStream ソースコード分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。