MIDIファイルのデータを処理するアプリを作成中で、リソースのMIDIファイルをInputStream
で読み込んで、一応動作したのですが、SDカードのMIDIファイルをFileInputStreamで読んで、InputStreamにして、同じメソッドで処理しようとするとNGです。

その原因を探ると、FileInputStreamで読んだ時点では本来のファイルバイト数だったのが、InputStreamに変えた時点で22バイト少なくなっていることを確認しました。

原因と正常なInputStreamを得る方法を教えてください。

// 略

filePath2 = cursor.getString(0);
try {
    //midM = new FileInputStream(new File(filePath2));
    fInputStream=new FileInputStream(filePath2);
    int nsize=fInputStream.available();
    midM = fInputStream;
    int msize=midM.available();
     if (nsize!=msize) {
        editedText=editedText+" fInputStream<>midM";
         midM.close();
         editText.setText(editedText);
         return;
    }

//略