Dartでは、BMPを読みたいので、BIGファイルである可能性があります。私はこのようにします:
var inputStream = imageFile.openInputStream();
inputStream.onData = () {
print(inputStream.available());
inputStream.read(18); // Some headers
int width = _readInt(inputStream.read(4));
int height = _readInt(inputStream.read(4));
// Another stuff ...
}
小さな画像でもうまく機能しますが、3Moファイルを読み取ると、onDataが何度も実行されます。実際、onDataは65536バイトのパケットによってトリガーされます。どのようなベストプラクティスですか?HEADER_STATE、COLORS_STATES、...のような状態で自動化を記述して、読み取り状態を設定し、inputStream.readがバッファーであると見なす必要がありますか?または、リーダークラスが恋しいですか?2つのパケットの間のいくつかのバイトを見逃すのが怖いです。私はこれに少しがっかりしています、私がJavaでそれをするとき、私はただ書く:
inputStream.read(numberOfBytes);
より使いやすい。