我使用openFileOutput()创建一个新的txt文件。我需要从其他应用程序(以及通过USB连接Android设备时从PC上看到该文件。我尝试使用.setReadable(true);但这看起来似乎没有。请告知我应该如何声明文件是可见的/公开的。
try {
textIncoming.append("saving");
final String STORETEXT = "test.txt";
OutputStreamWriter out = new OutputStreamWriter(openFileOutput(STORETEXT, 0));
out.setReadable(true);
out.write("testing");
out.close();
}
catch (Throwable t) {
textIncoming.append("not saving");
}
我已将程序更改为使用getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS),但由于某种原因它返回路径/ storage / emulated / 0 / Documents,我甚至无法在设备上找到此文件夹。我看过使用ES文件浏览器的Android设备上的文件,但无法找到我试图创建的文件夹或文件(另外我想要这些在SD卡上的文档文件夹中,所以它似乎没有给我一个指向SD卡的指针,而不是创建文件夹,而不是创建文件。以下是我更新的代码,请指教
String root = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS).toString();
File myDir = new File(root + "/Saved_Receipts");
myDir.mkdirs();
Random generator = new Random();
int n = 10000;
n = generator.nextInt(n);
String fname = "DRcpt-" + n + ".xml";
textIncoming.append(root);
File file = new File(myDir, fname);
if (file.exists()) {
file.delete();
}
try {
FileOutputStream out = new FileOutputStream(file);
out.flush();
out.close();
}
catch (Exception e) {
e.printStackTrace();
}
答案 0 :(得分:0)
如果您希望任何人都能阅读它,请将其保存到SD卡。 这个Android文档应该告诉你你需要做什么。 https://developer.android.com/guide/topics/data/data-storage.html#filesExternal
答案 1 :(得分:0)
openFileOutput()documentation说:
打开私人文件
因此,除非您将其复制到另一个可见的目录,否则它创建的文件不会对其他应用程序可见。在这种情况下,您必须将数据保存在名为"外部存储"的内容中。与其他应用共享。使用此link处的代码。