Android基础学习笔记---流文件存储(一)

1、android中文件的存储与读取
在android系统中提供文件数据存储的方法:openFileOutput(String name,int mode)
name为需要存储的文件名(如demo.txt)
mode为此文件的读写权限:
(1)MODE_PRIVATE:表示该文件只能被创建它的程序所调用。
(2)MODE_APPEND:表示新存入的数据添加在原来数据的后面。
(3)MODE_WORLD_READABLE:表示该文件的数据能够被所有的程序读取。
(4)MODE_WORLD_WRITEABLE:表示该文件的数据可以被所有的程序写入。

try{
    String string=et01.getText().toString();//取得文本内容
    byte[] buffer=string.getBytes();//将内容转化为字节数组
    //创建文件输出流及文件 demo.txt
    FileOutputStream fos=openFileOutput("demo.txt", MODE_PRIVATE);
    fos.write(buffer);//将字节数组通过文件输出流存入 demo.txt 文件中
    fos.close();//关闭文件输出流
    }
    catch(Exception e){
    e.printStackTrace();
}

注:默认路径存放在/data/data/包名/files/,还可以存入自定义的内部存储路径下,如果需要存储到 sdcard 中。可以如下这么写:

String path=Environment.getDownloadCacheDirectory().getPath();//获取sdcard路径
File myfile01=new File(path+"/demo01.txt");
FileOutputStream fos=new FilePutputStream(myfile01);

//需要在AndroidMainfest.xml中加上sdcard的读写权限
/**
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission/ android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS">
*/

在android中的文件读取方法:openFileInput(String name)
(默认路径)

try{
    //取得文件,并将文件中的字节数组放入文件输入流中
    FileInputStream fis=openFileInput("demo.txt");
    //取得文件的大小
    int length=fis.available();
    byte[] buffer=new byte[length];//设置缓冲字节数组,与文件大小相同
    fis.read(buffer);//将文件输入流中的字节数组放入缓冲字节数组
    //以下两种方法是将缓冲字节数组转化为文本
    //String queryresult=new String(buffer,"UTF-8");
    String queryresult=EncodingUtils.getString(buffer, "UTF-8");
    fis.close();
}catch(Exception e){
    e.printStackTrace();
}

(其他位置)

    //(1)读取 raw 资源文件夹下面的内容。
    Resources myres=getResources();
    InputStream is=myres.openRawResource(R.raw.demo01);
    //(2)读取 Assets 文件夹下面的内容。
    Resources myres=getResources();
    InputStream is=myres.getAssets().open(filename);
    //(3)读取 sdcard 文件夹下面的文件内容。
    File file=new File("/sdcard/filename");
    FileInputStream fis=new FileInputStream(file);
    //(4)读取特定位置的文件。
    File file=new File("/data/data/com.lyj.cn/filename");
    FileInputStream fis=new FIleInputStream(file);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值