我试图在/data/data/package_name/files的子目录下创建文件。
例如,/data/data/package_name/files/folder1/file1.txt。这是我的代码:

FileOutputStream fos;
String path = getFilesDir().toString() + "/" + folderName + "/" + String.valueOf(i+1) + ".txt";
try
{
    File f = new File(path);
    f.getParentFile().mkdirs();
    f.createNewFile();
    fos = new FileOutputStream(path, false);
    fos.write(array[i].getBytes());
    fos.close();
}
catch (Exception e)
{
    e.printStackTrace();
}

但我不知道我是否得到许可。当用户重新启动应用程序时,/data/data/package_name/files下的文件是否仍然可用?我不想让用户看到我的文件,所以写SDCard并不能解决我的问题。

最佳答案

FileOutputStream fos;
File f = getFilesDir();
try{
    String fileName = "test.txt";
    String filePath = f.getAbsolutePath()+File.separator+fileName;
    fos = new FileOutputStream(filePath);
    fos.write(array[i].getBytes());
}
catch (Exception e){
    e.printStackTrace();
}finally{
    try{
        fos.close();
    }catch(IOException e1){}
}

这对我有效。

10-08 08:46