android文件读写

读写文件

  • 在sd卡中读写
  1. 文件路径
//sd卡的路径
private static final String SD_PATH = Environment
            .getExternalStorageDirectory()+"//notes";
private static final String FILE_NAME="note";
  1. 检查文件是否存在
public static void checkDir(){
        File fileDir=new File(SD_PATH);
        if(!fileDir.exists()){
            fileDir.mkdirs();

        }
    }
  1. 读取文件
public static List<ContentVo> read(Context context){
      //  String fileName="innerFile";
        checkDir();
        FileInputStream fis=null;
        StringBuilder builder=null;
        try {
      //      fis=context.openFileInput(fileName);
           fis=new FileInputStream(new File(SD_PATH,FILE_NAME));

            BufferedReader bf=new BufferedReader(new InputStreamReader(fis));
            builder=new StringBuilder();
            String line=null;
            while((line=bf.readLine())!=null){
                builder.append(line);
            }
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (fis != null) {
                    try {
                        fis.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }

                }
            }
        //使用gson将json字符串转成list
        Gson gson=new Gson();
        return gson.fromJson(datalist,new TypeToken<List<ContentVo>>(){}.getType());
    }
  1. 写入文件
 public static void write(List<ContentVo> list, Context context){
      //  String fileName="innerFile";
        checkDir();
        Gson gson=new Gson();
        String outData = gson.toJson(list);
        FileOutputStream fos=null;
        try {
          //  fos=context.openFileOutput(fileName, Context.MODE_PRIVATE);
            fos=new FileOutputStream(new File(SD_PATH,FILE_NAME));
            if(outData!=null){
                fos.write(outData.getBytes());
            }
            fos.flush();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if(fos!=null){
                try {
                    fos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值