Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

ストリムを利用して配列にデータを入れる処理

いつもお世話になっております。
早速ですが、勉強中に疑問に思っていたのがありまして質問いたします。

下記のコードはストリムを利用して配列にデータを入れる処理を行っています。
import java.io.*; 
public class FileStreamMain{ 
    public static void main(String[] args) throws IOException{ 
        File f = new File("FileStreamMain.java"); 
        int fileSize = (int)f.length(); 
        byte[] b = new byte[fileSize]; 
        // ★ストリムを利用して配列にデータを入れる処理 
        FileInputStream fis = new FileInputStream("FileStreamMain.java"); 
        int pos = 0; 
        int size = 10; 
        int temp; 
        while( (size=fis.read(b, pos, size)) > 0 ){ 
            pos += size; 
            temp = b.length - pos; 
            if(temp < 10){ 
                size = temp; 
            } 
        } 
        fis.close(); 
    } 
}

このサンプルコードで配列にデータを入れる処理を行っている所が
理解できませんでした。
FileStreamMain.javaを参照してFileInputStreamオブジェクトを生成した後の処理をみると10バイトずつサイズを計算しているだけだと思いますが、配列にデータを入れる処理とはどこで行っているのでしょうか?

よろしくお願いします。

3

回答

4505

閲覧

3件の回答

評価

0

配列にデータを入れる処理は、配列を使っているところで行われています。

評価

0

mio様、ご返答ありがとうございました。
配列を使っているところというのは
read(b, pos, size)だと思いますが、APIで検索してみたら
bはデータの読み込み先のバッファで読み込みする前の書き込みが
行われているのが良く分かりません。−−

評価

0

>bはデータの読み込み先のバッファで読み込みする前の書き込みが
>行われているのが良く分かりません。−−
すみませんが、何を言いたいのかが分かりません。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。