Java openFileOutput:如何在/data/data…外部创建文件。。。。路径

Java openFileOutput:如何在/data/data…外部创建文件。。。。路径,java,android,Java,Android,我想知道你是否能帮我解决这个问题。我不明白如何访问“下载”文件夹或我自己的一些文件夹 我想创建一些txt文件,并通过USB访问它。我没有找到与我的问题相关的主题,因为我不知道我要搜索的确切位置 String string = "hello world!"; FileOutputStream fos = openFileOutput("test.txt", Context.MODE_PRIVATE); fos.write(string.getByt

我想知道你是否能帮我解决这个问题。我不明白如何访问“下载”文件夹或我自己的一些文件夹

我想创建一些txt文件,并通过USB访问它。我没有找到与我的问题相关的主题,因为我不知道我要搜索的确切位置

        String string = "hello world!";

        FileOutputStream fos = openFileOutput("test.txt", Context.MODE_PRIVATE);
        fos.write(string.getBytes());
        fos.close();
感谢您的提示:)

从阅读开始。请记住,外部存储并不等同于“可移动SD卡”。它可以是32Gb或Nexus设备上的任何内存

下面是一个如何获取文件目录基本文件夹的示例(即卸载应用程序时删除的文件夹,而不是卸载后仍然存在的缓存目录):

更新:由于您需要通过USB和您的PC文件管理器而不是DDMS或类似方式访问文件,因此您可以使用and pass as参数(请注意,我不确定是否有等效的内部存储):


好的,很高兴知道。我将阅读文档并尝试理解您的代码。我在日志中得到以下信息:06-10 13:19:37.647:E/AndroidRuntime(25405):致命异常:main 06-10 13:19:37.647:E/AndroidRuntime(25405):原因:java.lang.IllegalArgumentException:File/storage/emulated/0/Android/data/de.scuido.hddeasypull/filetest.txt包含路径分隔符如何使用给定的baseFolder保存到其他位置?我不明白我该用什么样的方法来做这件事。啊,对不起。忘记使用了openFileOutput()。检查我的更新答案,在那里我创建了一个文件,并在启动应用程序后将其传递到FileOutputStream(),我无法通过USB找到“/storage/simulated/0/Android/data/de.scuido.hddeasypull/files/test.txt”。没有新文件夹。奇怪,好,有三件事要尝试:1)调用file.getParentFile().mkdirs();以确保已创建所有文件夹。2) 调用fos.flush();关闭流之前3)更改为新文件(basefolder+File.separator+“test.txt);
String baseFolder;
// check if external storage is available
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
    baseFolder = context.getExternalFilesDir(null).getAbsolutePath()
}
// revert to using internal storage
else {
    baseFolder = context.getFilesDir().getAbsolutePath();
}

String string = "hello world!";
File file = new File(basefolder + "test.txt");
FileOutputStream fos = new FileOutputStream(file);
fos.write(string.getBytes());
fos.close();
String baseFolder;
// check if external storage is available
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
    baseFolder = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
}
// revert to using internal storage (not sure if there's an equivalent to the above)
else {
    baseFolder = context.getFilesDir().getAbsolutePath();
}

String string = "hello world!";
File file = new File(basefolder + File.separator + "test.txt");
file.getParentFile().mkdirs();
FileOutputStream fos = new FileOutputStream(file);
fos.write(string.getBytes());
fos.flush();
fos.close();