我创建了一个Android应用,该应用通过loss.backward() # Back Propagation
optimizer.step() # Gardient Descent
从用户那里获取输入并将其写入手机内部存储中的EditText
文件中。是否可以在手机的文件管理器中打开文本文件?我试图使用name.txt
获取文件路径。但是无法在文件管理器中找到文件。
答案 0 :(得分:1)
每个应用都有一个私有存储,可以从该应用本身访问该存储,然后有一个公共存储/ sdcard / ...其他应用也可以访问(需要从系统获取存储许可) 此方法会将内容保存在应用程序专用存储区中的文件中
public void saveFile(String fileName, String content) {
try {
FileOutputStream fOut = context.openFileOutput(fileName, Context.MODE_PRIVATE);
fOut.write((content).getBytes());
fOut.flush();
fOut.close();
} catch (Exception e) {
e.printStackTrace();
}
}
答案 1 :(得分:1)
如果要让其他应用程序(如文件管理器)访问文件,则需要使用外部存储。内部存储空间只能由您的应用读取。
在评论中,您会提出一个有效的问题-“如果电话没有外部存储设备该怎么办...?” 。今天,这并不是真正的问题。参见https://developer.android.com/training/data-storage/files:
许多设备现在将永久存储空间划分为多个单独的空间 “内部”和“外部”分区。所以即使没有可移动的 存储介质,这两个存储空间始终存在...
==========
因此将上面的代码更改为此:
getExternalFilesDir().getAbsolutePath()+"/"+FILE_NAME
getExternalFilesDir
是android.content.Context
类中的方法。因此,此调用将在您的活动类Context
中起作用。
=============
以下进一步支持选择外部存储,同样来自https://developer.android.com/training/data-storage/files。
当您要确保两者都没有时,最好使用内部存储 用户或其他应用程序都无法访问您的文件。
外部存储是不需要访问文件的最佳位置 限制以及要与其他应用共享的文件或 允许用户使用计算机进行访问。