问题:
在做文本文件读取时,从assert文件中获取文件
getResources().getAssets().openFd("test.txt").getFileDescriptor()
会报错,提示File not Found ,because the file compressed,查找了很多资料,android打包成apk时,在assert文件中,除了音视频文件不压缩外,像txt之类的会进行压缩成zip包,以节约空间,所以getFileDescriptor()时获取不到,
通用都是获取文件流,但在做大文件读取时,最新技术推荐使用java nio中内存映射技术MappedByteBuffer
public void openbook(FileDescriptor fileD) throws IOException {
//book_file = new File(strFilePath);
FileInputStream in=new FileInputStream(fileD);
long lLen = in.available();
m_mbBufLen = (int) lLen;
m_mbBuf =in.getChannel().map(
FileChannel.MapMode.READ_ONLY, 0, lLen);
}
问题参考:
When developing an Android app, any data file, image or XML file (that is, any Resource or Asset) you use is bundled into your ap