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

Posted proscientist

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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,之后就可以正常的写数据了。

 







以上是关于Android 在指定目录创建并写入文件的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向使用 DB Browser 查看并修改 SQLite 数据库 ( 从 Android 应用数据目录中拷贝数据库文件 | 使用 DB Browser 工具查看数据块文件 )(代码片段

Android 逆向使用 DB Browser 查看并修改 SQLite 数据库 ( 从 Android 应用数据目录中拷贝数据库文件 | 使用 DB Browser 工具查看数据块文件 )(代码片段

用C语言创建文件并写入内容

用C语言创建文件并写入内容

php 有啥办法指定目录路径去创建文件

创建目录并写入insite文件