java - 如何将文件保存到 Android 中的任何特定路径

标签 java android fileoutputstream

我可以创建文件。它正在/data/data/com.mypackage.app/files/myfile.txt 上创建。但我想在内部存储/Android/data/com.mypackage.app/files/myfiles.txt 位置创建。我怎样才能做到这一点?

代码:

public void createFile()  {

    File path  = new File(this.getFilesDir().getPath());
    String fileName = "myfile.txt";
    String value = "example value";

    File output = new File(path + File.separator + fileName);

    try {
        FileOutputStream fileout = new FileOutputStream(output.getAbsolutePath());
        OutputStreamWriter outputWriter=new OutputStreamWriter(fileout);
        outputWriter.write(value);
        outputWriter.close();
        //display file saved message
        Toast.makeText(getBaseContext(), "File saved successfully!",
                Toast.LENGTH_SHORT).show();
    }
    catch (IOException e) {
        Log.e("Exception", "File write failed: " + e.toString());
    }

}

更新:

我解决了这个问题。也许有人可以帮忙。只改变这一行。

File output = new File(getApplicationContext().getExternalFilesDir(null),"myfile.txt");

最佳答案

您可以使用以下方法获取根目录:

File path = context.getExternalFilesDir(Environment.DIRECTORY_PICTURES);

除了 DIRECTORY_PICTURES,您还可以使用 nullDIRECTORY_MUSICDIRECTORY_PODCASTSDIRECTORY_RINGTONESDIRECTORY_ALARMSDIRECTORY_NOTIFICATIONSDIRECTORY_PIC TURESDIRECTORY_MOVIES

在此处查看更多内容:

关于java - 如何将文件保存到 Android 中的任何特定路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49907675/

相关文章:

android - 我怎样才能 "mount"Android 中的虚拟驱动器?

java - 复制 Jar 文件而不损坏

java - 将 csv 数据作为 zipentry 对象移动到 zip 存档 - 构造函数 ZipEntry(Path) 未定义

java - Spark 2.1.0 : Reading compressed csv file

java - sqrt、cbrt - 如果不需要平方根或立方根,而是任意根怎么办?

android - 这个 Loader 类应该是静态的,否则可能会发生泄漏 |内部类内存泄漏 | AsyncTaskLoader 内存泄漏 -

c# - AdColony SDK 在当前平台上不可用

android - 发布新版本的android应用时未安装该应用

java - 使用 json 将类转换为另一个类(Jackson 框架)

java - 使用 Java 中的 Windows API 调用使用 "native"