Java 如何访问SD卡上的特定原始数据?
我正在做一个Android项目。在这个项目中,我需要逐扇区读取SD卡的数据Java 如何访问SD卡上的特定原始数据?,java,android,Java,Android,我正在做一个Android项目。在这个项目中,我需要逐扇区读取SD卡的数据 RandomAccessFile file = new RandomAccessFile("\\\\.\\PhysicalDrive0","r"); 但Filenotfound异常即将出现。我用MFC(VC++)做了一个类似的项目。通过使用Handle、CreateFile和ReadFile函数,我可以读取数据扇区。java中有任何函数可以逐个扇区读取数据吗?您想从sd卡读取数据。所以请执行以下操作 File dir
RandomAccessFile file = new RandomAccessFile("\\\\.\\PhysicalDrive0","r");
但Filenotfound异常即将出现。我用MFC(VC++)做了一个类似的项目。通过使用Handle、CreateFile和ReadFile函数,我可以读取数据扇区。java中有任何函数可以逐个扇区读取数据吗?您想从sd卡读取数据。所以请执行以下操作
File dir = Environment.getExternalStorageDirectory();
File yourFile = new File(dir, "path_of_your_file");
然后你可以像这样读取文件
fileInputStream = new FileInputStream(yourFile);
BufferedReader br = new BufferedReader(new InputStreamReader(fileInputStream));
String readString = new String();
while((readString = br.readLine())!= null){
//readString has your data
}
您想从sd卡读取数据,所以请执行以下操作
File dir = Environment.getExternalStorageDirectory();
File yourFile = new File(dir, "path_of_your_file");
然后你可以像这样读取文件
fileInputStream = new FileInputStream(yourFile);
BufferedReader br = new BufferedReader(new InputStreamReader(fileInputStream));
String readString = new String();
while((readString = br.readLine())!= null){
//readString has your data
}
要逐扇区读取SD卡,您需要以root用户身份运行。我建议如下:
Runtime.getRuntime().exec("su -c dd if=/dev/mmcblk1 of=/dev/stdout");
这应该返回一个进程
对象,其标准输出流包含数据。SD卡的设备名称在不同的系统中可能会有所不同,而且目前还没有标准化的方法来确定它是什么,因此您必须进行一些实验
祝你好运 要逐扇区读取SD卡,您需要以root用户身份运行。我建议如下:
Runtime.getRuntime().exec("su -c dd if=/dev/mmcblk1 of=/dev/stdout");
这应该返回一个进程
对象,其标准输出流包含数据。SD卡的设备名称在不同的系统中可能会有所不同,而且目前还没有标准化的方法来确定它是什么,因此您必须进行一些实验
祝你好运 朱尔斯是对的,如果你读一个块设备, 但是,新系统中的内部存储是从/dev/fuse(使用fuse守护进程)在/mnt/shell/simulated(或类似的smth)上安装的(要检查的设备上的exec mount),它不是块设备,而是块设备,这意味着您不能使用随机访问来获取数据。
看看,这可能会有帮助。如果你读到一个块设备,Jules是对的, 但是,新系统中的内部存储是从/dev/fuse(使用fuse守护进程)在/mnt/shell/simulated(或类似的smth)上安装的(要检查的设备上的exec mount),它不是块设备,而是块设备,这意味着您不能使用随机访问来获取数据。
看看吧,这可能会有帮助。你在Android上运行MFC的情况如何?你有安卓的根访问权限吗?你在安卓上运行MFC的地方如何?你有安卓的根访问权限吗?