java - 将系统应用程序的文件复制到另一个位置时出错

标签 java android

我正在开发一个系统应用,其中我必须将属于另一个系统应用的 xml 文件复制到我的root的已知位置> 电话。 首先,我尝试使用 adb shell 和命令在命令提示符中执行此操作

cp /data/data/owner_app_pkg_name/shared_prefs/file.xml /storage/sdcard0/FOLDERNAME/file2.xml

效果非常好。

但是,当我尝试在我的系统应用程序中以编程方式执行相同的操作时,使用

Process p = Runtime.getRuntime().exec("cp /data/data/owner_app_pkg_name/shared_prefs/file.xml /storage/sdcard0/FOLDERNAME/file2.xml");

它不起作用。

此外,如果我通过系统的命令提示符在同一目录中创建了 file.xml 的副本,然后使用执行我的应用中的复制文件名,它可以工作。

有人可以告诉我我必须做什么才能使用my的java代码将所有者系统应用使用的file.xml直接复制到我想要的位置强>系统应用程序正如我上面提到的?

最佳答案

 public void copyFile() throws IOException {
    InputStream inStream = new FileInputStream(new File("/data/data/owner_app_pkg_name/shared_prefs/file.xml"));
    OutputStream outStream= new FileOutputStream(new File("/storage/sdcard0/FOLDERNAME/file2.xml"));

    // Transfer bytes from in to outStream
    byte[] buf = new byte[1024];
    int len;
    while ((len = inStream.read(buf)) > 0) {
        outStream.write(buf, 0, len);
    }
    inStream.close();
    outStream.close();
}

关于java - 将系统应用程序的文件复制到另一个位置时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20374810/

相关文章:

java - int 无法解析为变量 java

java - Ant 与 Mercurial

android - Sherlock Action Bar + map 插件如何配置?

android - 如何通过 ObjectAnimator 旋转可绘制对象?

java - DDMS java 分析器显示 : java/lang/StringBuilder. <init> - 它在我的代码中的什么位置?

java - 如何使用 rjava 在 R 中调用 String[][]

Windows 10 上的 Java 8 - CLASSPATH 不起作用

java - 适当的 json 到后端 post 调用

android - "Activity"类中成员变量的持久化

java - 使用 AsyncTask 进行 SharedPreference 和一般初始化的最佳实践?