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

问题描述

想从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中得到数据文件。
问题出现在哪呢?

解决方案

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

时间: 2024-08-04 04:13:13

android-想从SDCARD中读文件,却从cache中读取的相关文章

qt excel mysql-qt编程中excel文件如何导入mysql中

问题描述 qt编程中excel文件如何导入mysql中 求助 如何实现qt编程的excel文件导入mysql 具体点 万分感谢

JSP中读文件和写文件的例子

js 读文件的例子***************************************************<%@ page contentType="text/html;charset=gb2312"%><%//变量声明\java.lang.String strFileName; //文件名java.io.File objFile; //文件对象java.io.FileReader objFileReader; //读文件对象char[] chrBuff

如何转储数据文件和Buffer Cache中的数据块

这篇文章是为了补充<Oracle性能优化与诊断案例精选>一书中的案例而写的,但是想想,也许还可以扩展一下,对于刚接触 Oracle 数据库的朋友们,试着回答一下以下几个问题,看看自己能否找到正确的答案: 当我们 insert 一条记录,不提交,这个数据在内存还是磁盘? 当我们 insert 一条记录,提交,这个数据在内存还是磁盘? 当我们 insert 一条记录,不提交,检查点,这个数据在内存还是磁盘? 当我们 insert 一条记录,提交,检查点,这个数据在内存还是磁盘? 先看看我的测试:

详解C++编程中的文件流与字符串流_C 语言

C++文件流类与文件流对象 文件流是以外存文件为输入输出对象的数据流.输出文件流是从内存流向外存文件的数据,输入文件流是从外存文件流向内存的数据.每一个文件流都有一个内存缓冲区与之对应. 请区分文件流与文件的概念,不用误以为文件流是由若干个文件组成的流.文件流本身不是文件,而只是以文件为输入输出对象的流.若要对磁盘文件输入输出,就必须通过文件流来实现. 在C++的I/O类库中定义了几种文件类,专门用于对磁盘文件的输入输出操作. 除了标准输入输出流类istream.ostream和iostream

与众不同 windows phone (37) - 8.0 文件系统: StorageFolder, StorageFile, 通过 Uri 引用文件, 获取 SD 卡中的文件

原文:与众不同 windows phone (37) - 8.0 文件系统: StorageFolder, StorageFile, 通过 Uri 引用文件, 获取 SD 卡中的文件 [源码下载] 与众不同 windows phone (37) - 8.0 文件系统: StorageFolder, StorageFile, 通过 Uri 引用文件, 获取 SD 卡中的文件 作者:webabcd 介绍与众不同 windows phone 8.0 之 文件系统 通过 StorageFolder 和

Java中对文件的操作

Java中对文件的操作 java中提供了io类库,可以轻松的用java实现对文件的各种操作.下面就来说一下如何用java来实现这些操作. 1.新建目录 <%@ page contentType="text/html;charset=gb2312"%> <% String filePath="c:/aaa/"; filePath=filePath.toString();//中文转换 java.io.File myFilePath=new java.i

5 个在 Linux 中管理文件类型和系统时间的有用命令

对于想学习 Linux 的初学者来说要适应使用命令行或者终端可能非常困难.由于终端比图形用户界面程序更能帮助用户控制 Linux 系统,我们必须习惯在终端中运行命令.因此为了有效记忆 Linux 不同的命令,你应该每天使用终端并明白怎样将命令和不同选项以及参数一同使用. 在 Linux 中管理文件类型和设置时间 请先查看我们 Linux 小技巧系列之前的文章: 5 个有趣的 Linux 命令行技巧 给新手的 10 个有用 Linux 命令行技巧 在这篇文章中,我们打算看看终端中 5 个和文件以及

从fread和mmap 谈读文件的性能

[原文] 1. https://www.byvoid.com/blog/fast-readfile/ 2. http://blog.csdn.net/jwh_bupt/article/details/7793549 3. http://blog.csdn.net/jwh_bupt/article/details/8373063 [原文1]         在进行大规模数据处理时,读文件很有可能成为速度瓶颈.不管你的CPU有4个核还是8个核,主频有2G还是3G,硬盘IO速度总是有个上限的.在本人最

spring mvc-SpringMVC 后台怎么获取前台jsp页面中file中的文件。

问题描述 SpringMVC 后台怎么获取前台jsp页面中file中的文件. 把file中的Excel文件提交,后台该如何获取这个Excel文件. 解决方案 SpringMVC默认是关闭fileupload功能的,开启该能够并验证文件上传,需要做如下几件事情: 第一:打开SpringMVC的文件上传功能: ***-servlet.xml中配置: <bean id="multipartResolver" class="org.springframework.web.mul