创建一个txt文件并在文件管理器中查看
Posted
技术标签:
【中文标题】创建一个txt文件并在文件管理器中查看【英文标题】:Creating a txt file and viewing it in the File manger 【发布时间】:2018-12-30 06:30:54 【问题描述】:我创建了一个 android 应用程序,它通过EditText
获取用户的输入并将它们写入手机内部存储中的name.txt
文件。是否可以在手机的文件管理器中打开文本文件?我尝试使用getFilesDir().getAbsolutePath()+"/"+FILE_NAME
获取文件路径。但在文件管理器中找不到该文件。
【问题讨论】:
如果您希望文件管理器等其他应用访问文件,则需要使用外部存储。内部存储只能由您的应用读取。 嗨@EJK,感谢您的回答。如果手机没有外部存储,那么如何处理呢?还有其他方法吗? 见:developer.android.com/training/data-storage/files。 许多设备现在将永久存储空间划分为单独的“内部”和“外部”分区。所以即使没有可移动存储介质,这两个存储空间也一直存在 【参考方案1】:如果您希望文件管理器等其他应用访问文件,则需要使用外部存储。内部存储只能由您的应用读取。
在 cmets 中,您提出了一个有效的问题 - “如果手机没有外部存储...怎么办?”。今天这不是一个真正的问题。见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。
如果您想确保既不 用户或其他应用程序都无法访问您的文件。
外部存储是存放不需要访问的文件的最佳位置 限制以及您想与其他应用程序共享的文件或 允许用户使用计算机访问。
【讨论】:
【参考方案2】:每个应用程序都有私有存储空间,可以从应用程序本身访问,然后公共存储 /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();
【讨论】:
但是如何将它们保存到外部存储?以上是关于创建一个txt文件并在文件管理器中查看的主要内容,如果未能解决你的问题,请参考以下文章
如何临时创建一个没有任何文件位置的文本文件并在运行时在 Spring Boot 中作为响应发送?