私はこのJavaScriptコードを持っています
var file = Components.classes["@mozilla.org/file/local;1"]
.createInstance(Components.interfaces.nsILocalFile);
file.initWithPath( this.savefile );
if ( file.exists() == false ) {
return null;
}
var is = Components.classes["@mozilla.org/network/file-input-stream;1"]
.createInstance( Components.interfaces.nsIFileInputStream );
is.init( file,0x01, 00004, null);
var sis = Components.classes["@mozilla.org/scriptableinputstream;1"]
.createInstance( Components.interfaces.nsIScriptableInputStream );
sis.init( is );
output = sis.read( sis.available() );
sis.close();
is.close();
this.filterData = output;
return output;
実際、私が読んでいるファイルはバイナリファイルで、350バイトと言えます。現在、19バイトは「ゼロ」であるため、上記のコードでは、出力で18バイトしか取得されません。
sis.availableをデバッグしようとすると、350が返されます。しかし、sis.readはゼロバイトまでしか読み取りません。
350バイト全体を出力で読み取る方法が必要です。