当前位置: 首页 > 知识库问答 >
问题:

正在将文件写入模拟器中的/system/app文件夹

竺焕
2023-03-14

我试图在Android模拟器中编写一个apk到/system/app location。下面是我的代码:

File path = Environment.getRootDirectory();
File fileToWrite = new File(path, "/" + fileName);

byte[] buff = new byte[1024];
int l = 0;
// write buffer to file
FileOutputStream fos = new FileOutputStream(fileToWrite);
while((l = zis.read(buff)) > 0){
    fos.write(buff,0, l);
}
fos.close();

我的AndroidManifest.xml:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

然而,我收到了以下错误消息:

java.io.FileNotFoundException:/system/mainapp-debug.apk(只读文件系统)06-08 08:51:59.858 292 1-3160/com.mainapp w/system.err:at java.io.FileOutputStream.open0(本机方法)at java.io.FileOutputStream.open(fileOutputStream.java:287)

我设法使用相同的代码写入/mnt/sdcard/download文件夹。但我不知道为什么它不能写入/system/app文件夹。

有什么想法吗?谢谢!

共有1个答案

白浩气
2023-03-14

下面是我用来创建路径的代码

    public static File root = android.os.Environment
        .getExternalStorageDirectory();

public static String path = root.getAbsolutePath() + "/" + directoryName
        + "/";

public static boolean CreateDirectory() {

    boolean ret = false;
    path = root.getAbsolutePath() + "/" + directoryName + "/";
    File folderExisting = new File(root.getAbsolutePath(), directoryName);

    if (folderExisting.exists()) {
        ret = true;
    } else {
        ret = folderExisting.mkdir();
        // ret = false;
    }

    return ret;
}

然后为了保存这些东西:

    public static boolean SaveToSD(List<String> data, String fileName) {

    // File root = android.os.Environment.getExternalStorageDirectory();
    boolean ret = false;
    CreateDirectory();
    File file = new File(path, fileName);

    try {
        FileOutputStream f = new FileOutputStream(file);
        PrintWriter pw = new PrintWriter(f);
        for (int idx = 0; idx < data.size(); idx++) {
            if (data.get(idx) != null)
                pw.println(data.get(idx));
        }

        pw.flush();
        pw.close();
        f.close();
        ret = true;
    } catch (FileNotFoundException e) {
        ret = false;
        e.printStackTrace();
    } catch (IOException e) {
        ret = false;
        e.printStackTrace();
    }

    return ret;

}

希望对你有帮助

对于对象:

        FileOutputStream fos = new FileOutputStream("file");
        ObjectOutputStream oos = new ObjectOutputStream(fos);
        oos.writeObject(mb);
        oos.close();
 类似资料:
  • 我有一些层次结构,我需要用owl语法编写它们。这里所有的对象都是类而不是个体。 每个层次结构中的类之间的关系是相同的。例如,“Relates”是一个层次结构中所有类之间的关系。 我应该如何定义这些关系?我知道object属性,但我需要类似relation,这是树(protege)中所有类之间的关系。 这些是错误 非类型化对象属性:http://example.org/1#HasPart非类型化类:

  • 将数据帧中的数据写入路径path=rootcontainer/container1“/”fileName df。重新划分(1)。写格式(“com.databricks.spark.csv”)。选项(“标题”、“true”)。选项(“分隔符”,分隔符)。选项(“quote”,“\u0000”)。模式(SaveMode.Overwrite)。保存(路径) 执行上述命令时,除了在root容器/容器1/文

  • 问题内容: 我将如何将javafx.scene.image.Image图像写入文件。我知道您可以在BufferedImages上使用ImageIO,但是有什么方法可以使用javafx图像吗? 问题答案: 差不多3年后,我现在有知识去做并回答这个问题。是的,原始答案也是有效的,但它涉及到先将图像转换为BufferedImage,我理想上想完全避免摆动。虽然这确实会输出图像的原始RGBA版本,足以满足

  • 问题内容: 我正在尝试从Http帖子回复文件写入 sdcard 上的文件。一切正常,直到检索到字节数据数组为止。 我尝试在清单中设置权限,并尝试了许多在网上找到的教程的不同组合。 我所能找到的只是使用活动的方法,但是我的应用程序如何通过线程来写入文件。具体来说,当必须写入文件时,会从另一个线程中调用一个线程,因此即使我尝试了活动对象,也无法使用它。 该应用程序已经走了很长一段路,我无法更改当前编写

  • 希望在节点JS中使用writefile将数据写入特定文件夹。 我在stackoverflow中看到过几个关于这个问题的问题,但没有一个对我有效。