2 xiaoyan 12 xiaoyan_12 于 2013.01.16 18:00 提问

想从SDCARD中读文件,却从cache中读取

我想知道在Android中使用JAVA API ,能否可以从SDCARD 中读取文件的内容?
我使用NDK C 代码可以实现

int fd = open(str, O_RDWR | O_NONBLOCK | O_DIRECT);  
readCount = read(fd, pBuffer, size); 

pBuffer是 aligned buffer 时,我使用 bytesRead = fin.read(originalBuffer) 从java中直接读取时,却从cache中得到数据文件。
问题出现在哪呢?

1个回答

curie_87
curie_87   2013.01.17 10:31
已采纳

经过多次的测试,我发现没有办法能从java中直接打开文件。唯一的方法是使用NDK,就像问题中说明的一样使用 O_DIRECT 参数打开文件。
为了编译代码,应该使用 -D_GNU_SOURCE指令。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!