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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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,之后就可以正常的写数据了。

相关文档
最新文档