我想知道在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中得到数据文件。
问题出现在哪呢?
经过多次的测试,我发现没有办法能从java中直接打开文件。唯一的方法是使用NDK,就像问题中说明的一样使用 O_DIRECT 参数打开文件。
为了编译代码,应该使用 -D_GNU_SOURCE
指令。