Aスタックは
スタックを使用することの利点は、あなたは、単にスタックにでpush(Object o)
オブジェクトはに追加することができるということです単にオブジェクトのコレクションなどの配列、ArrayListを、コレクションと同じですコレクション、およびpop()
オブジェクトをスタックから取り除きたいときに使用します。スタックはどのサイズにも拡張できます。あなたは、おそらくこのような何かをする必要があるだろう
...
Stack stack = new Stack();
AssetManager assets = this.getAssets();
String[] assetLocations = assets.list();
for (int i=0;i<assetLocations.length;i++){
byte[] asset = loadAssetFromStream(assetLocations[i]); // you need to write this
stack.push(asset);
}
AssetManagerは、資産を読み取るためopen()
方法を持っている - あなたはおそらくbyte[]
アレイ等のメモリに各資産を(読む必要があります実際にはObject
)、各オブジェクトをスタックに押し込みます。
私はバイト配列に入力ストリームからファイルをロードする場合、それはまた、ロードされたファイルのサイズは、バイト配列の8倍の大きさであることを意味するのでしょうか?詳しく
ためhttp://developer.android.com/reference/android/content/res/AssetManager.htmlを参照してください。 –
いいえ、私はビットとバイトが混ざっていると思います。何らかの理由でファイルが圧縮されていない限り(かなり特定のアセットは個別に圧縮されていない)、 'byte []'配列は元のファイルと同じサイズになります(ファイルは通常バイト単位で測定されます)。 'AssetManager'で' openFd(String) 'メソッドを使用して' AssetFileDescriptor'を取得することができます。このメソッドは 'getLength()'を呼び出してファイルのサイズを取得することができます。 – wattostudios
ああ!ありがとうございました!それに伴い、より有益なヒントをいただき、ありがとうございます。私は今までファイルの合計サイズを取得する方法を知りませんでした。 AssetFileDescriptor.getLength()は私のニーズに合っています。 –