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;
        }
    
    //略
    
```
CC BY-SA 3.0
2017-12-24T08:26:31.170
40511
2017-12-24T08:48:05.063
2017-12-24T08:48:05.063
3068
26765
question
android java android-studio
android java InputStream :InputStream.availableの値が異常。