创建一个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文件并在文件管理器中查看的主要内容,如果未能解决你的问题,请参考以下文章

从以前的执行中清除 txt 文件的内容

如何临时创建一个没有任何文件位置的文本文件并在运行时在 Spring Boot 中作为响应发送?

iOS11 在 Files 应用中保存并查看 .txt 文件

Git操作

Git操作

好文分享Docker将镜像文件发布到私服库