Android 在指定目录创建并写入文件

目标:

在file目录中创建文件,写入文本信息。用于和App之间进行数据共享。

经过关键字的搜索,发现都是推荐的以下方法:

FileOutputStream outputStream = openFileOutput(fileName, mode);

其中:

name:
用于指定文件名称,不能包含路径分隔符“/”,如果文件不存在,Android会自动创建它。比如 info.txt

创建的文件保存在/data/data/<package name>/files/目录中。

mode取值:
MODE_APPEND    私有(只有创建此文件的程序能够使用,其他应用程序不能访问),在原有内容基础上增加数据             
MODE_PRIVATE   私有,每次打开文件都会覆盖原来的内容        
MODE_WORLD_READABLE 可以被其他应用程序读取(这个现在已经不用了,用了会报错)
MODE_WORLD_WRITEABLE 可以被其他应用程序写入

然而,/data/data/ 目录通过手机自带的文件管理系统,以及电脑文件管理系统都看不到。

需要在Android Studio中用Device Monitor打开,具体路径

Tools - Android - Android Device Monitor - File Explorer

下面介绍我使用的解决方案:

                Log.e(TAG, copyContent.toString());

                try {
                    File fs = new File(Environment.getExternalStorageDirectory()+"/msc/" + fileName);
                    FileOutputStream outputStream =new FileOutputStream(fs);
                    outputStream.write(copyContent.getBytes());
                    outputStream.flush();
                    outputStream.close();
                    Toast.makeText(getBaseContext(), "File created successfully", Toast.LENGTH_LONG).show();
                    Log.e(TAG, "Successful");
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }

即不使用openFileOutput方法,使用FileOutputStream方法,该方法的传递参数是 可设置路径的File对象。

先在指定目录创建File文件,再用FileOutputStream类为该文件创建outputStream,之后就可以正常的写数据了。

原文地址:https://www.cnblogs.com/proscientist/p/8447097.html

时间: 2024-08-01 21:09:32

Android 在指定目录创建并写入文件的相关文章

c# 获取指定目录下的所有文件并显示在网页上

参考文献: FileInfo 的使用  https://msdn.microsoft.com/zh-cn/library/system.io.fileinfo_methods(v=vs.110).aspx 网页表格的生成  http://www.w3school.com.cn/html/html_tables.asp C# 通过文件扩展名获取图标和描述 http://www.csframework.com/archive/2/arc-2-20110514-1478.htm   http://ww

linux复制指定目录下的全部文件到另一个目录

linux复制指定目录下的全部文件到另一个目录中复制指定目录下的全部文件到另一个目录中文件及目录的复制是经常要用到的.linux下进行复制的命令为cp.假设复制源目录 为 dir1 ,目标目录为dir2.怎样才能将dir1下所有文件复制到dir2下了如果dir2目录不存在,则可以直接使用cp -r dir1 dir2即可.如果dir2目录已存在,则需要使用cp -r dir1/. dir2如果这时使用cp -r dir1 dir2,则也会将dir1目录复制到dir2中,明显不符合要求.ps:di

python之查询指定目录下的最新文件

使用os模块查询指定目录下的最新文件 1 import os 2 3 # 输入目录路径,输出最新文件完整路径 4 def find_new_file(dir): 5 '''查找目录下最新的文件''' 6 file_lists = os.listdir(dir) 7 file_lists.sort(key=lambda fn: os.path.getmtime(dir + "\\" + fn) 8 if not os.path.isdir(dir + "\\" + f

javaFile循环列出指定目录下的所有文件(源代码)

package javatest.basic22; import java.io.File; import java.io.IOException; public class FileTest { public void getFileName(File file){ //判断是否是文件 if(file.isFile()){ System.out.println(file.getPath()+file.getName()); }else{ //如果是目录,列出当前目录下所有目录 File[] f

Windows Phone获得IsolatedStorage中指定目录下的所有文件

在Windows Phone 中对隔离存储空间中的文件操作需要通过System.Io.IsolatedStorage下的类进行操作 获得指定文件夹下的所有文件: 参数:是指定文件夹的路径加上通配符,格式:\folder1\* List<string> GetFileNames(string _strFolder) { List<string> returnlst = new List<string>(); using (IsolatedStorageFile stora

linux复制指定目录下的全部文件到另一个目录中

linux复制指定目录下的全部文件到另一个目录中复制指定目录下的全部文件到另一个目录中文件及目录的复制是经常要用到的.linux下进行复制的命令为cp.假设复制源目录 为 dir1 ,目标目录为dir2.怎样才能将dir1下所有文件复制到dir2下了如果dir2目录不存在,则可以直接使用cp -r dir1 dir2即可.如果dir2目录已存在,则需要使用cp -r dir1/. dir2如果这时使用cp -r dir1 dir2,则也会将dir1目录复制到dir2中,明显不符合要求.ps:di

C#直接删除指定目录下的所有文件及文件夹(保留目录)

? ????#region 直接删除指定目录下的所有文件及文件夹(保留目录) /// <summary> /// 直接删除指定目录下的所有文件及文件夹(保留目录) /// </summary> /// <param name="strPath">文件夹路径</param> /// <returns>执行结果</returns> public bool DeleteDir(string strPath) { try

SHELL编程练习-获得指定目录下的所有文件及文件夹的大小

一.目的编写一个脚本,可以获得指定目录下的所有文件及文件夹的大小.输出的样式与 ls -lh 命令相同.命令执行示例,其中和 ls -lh 命令输出的唯一区别是目录的大小:1.1.ls -lh命令的输出(注意目录大小) [[email protected] ~]# ls -lh /root/dir1/ total 24M drwxr-xr-x 3 root root 4.0K Feb 6 13:54 dir2 drwxr-xr-x 2 root root 4.0K Feb 6 13:55 dir

通过zipfile解压指定目录下的zip文件

代码: # -*- coding: utf-8 -*- import os import zipfile import platform import multiprocessing # 解压后的文件夹与原来的zip文件同名且在相同目录下 # 确保windows下解压后的文件夹名不乱码 file_encoding = "utf-8" if platform.system() == "Windows": file_encoding = "gbk"