Android实例demo5之FileOutputStream文件写入的多种方法

本文详细介绍了在Android中使用FileOutputStream进行文件写入的四种方法,包括通过`openFileOutput`、直接指定文件路径以及外部存储SD卡。同时,文章还提到了`Context.MODE_PRIVATE`等不同模式对文件访问的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

android中文件存储常用到以下方法:

l文件
lSharedPreferences(参数)
lSQLite 数据库
lContent provider内容提供

创建Fileoutputstream有多种方法:
FileOutputStreamoutStream= this.openFileOutput("itcast.txt", Context.MODE_PRIVATE);
FileOutputStream fosFileOutputStream = new FileOutputStream(mfile);
FileOutputStream fosFileOutputStream = new FileOutputStream(filepath);
第一种方法必须是context上下文中所具有的,后面是根据文件路径+文件名,以及文件的String路径。这里的mfile也是一个路径。
下面介绍四种方法将文件存储到本地:
openFileOutput 文件存储的地址是创建的文件保存在/data/data/<packagename>/files目录。
下面还有一些常用的属性要注意:
Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可以使用Context.MODE_APPEND
Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。
MODE_WORLD_READABLE:表示当前文件可以被其他应用读取;MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。

public static void save1(Context mContext){
try {
FileOutputStream fOutputStream = mContext.openFileOutput("test001.txt", mContext.MODE_PRIVATE);
fOutputStream.write(("test001 001!").getBytes());
fOutputStream.flush();
fOutputStream.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}



}
public static void save2(Context mContext){
try {
File filepath = mContext.getFilesDir();
File mfile = new File(filepath, "test002.txt");
//File filepath1 = mContext.getCacheDir();
//FileOutputStream fosFileOutputStream = new FileOutputStream(filepath);
FileOutputStream fosFileOutputStream = new FileOutputStream(mfile);
fosFileOutputStream.write(("test002 123").getBytes());
fosFileOutputStream.flush();
fosFileOutputStream.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public static void save3(Context mContext){
try {
String filepath = "/data/data/com.zhengwei.write/test003.txt";
FileOutputStream fosFileOutputStream = new FileOutputStream(filepath);
fosFileOutputStream.write(("test003 123456").getBytes());
fosFileOutputStream.flush();
fosFileOutputStream.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public static boolean save4(Context mcontext) {

try {
// 判断当前的手机是否有sd
String state = Environment.getExternalStorageState();

if(!Environment.MEDIA_MOUNTED.equals(state)) {
// 已经挂载了sd
return false;
}

File sdCardFile = Environment.getExternalStorageDirectory();

File file = new File(sdCardFile, "test004.txt");

FileOutputStream fos = new FileOutputStream(file);

String data = "test004 789";

fos.write(data.getBytes());

fos.flush();

fos.close();
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}

读取文件验证方法:
    public void readdata(Context mContext){
    try {
    //读取文件test001
    //FileInputStream fis = this.openFileInput("test001.txt");
    //读取文件test002
    //File filepath = mContext.getFilesDir();
//File mfile = new File(filepath, "test002.txt");
    //FileInputStream fis = new FileInputStream(mfile);
//读取文件test003
    //String filepath = "/data/data/com.zhengwei.write/test003.txt";   
//FileInputStream fis = new FileInputStream(filepath);
//读取文件test004
    File sdCardFile = Environment.getExternalStorageDirectory();
    File file = new File(sdCardFile, "test004.txt");
    FileInputStream fis = new FileInputStream(file);
    BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
    String text = reader.readLine();
    System.out.println(text);
    Toast.makeText(getApplicationContext(), text, Toast.LENGTH_SHORT).show();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
    
    }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值