美文网首页Android练级塔@IT·互联网首页投稿(暂停使用,暂停投稿)
九.Android 数据持久化四种方法之一——文件保存

九.Android 数据持久化四种方法之一——文件保存

作者: KaelQ | 来源:发表于2016-08-07 21:27 被阅读226次

1.文件保存概述

  • Android允许使用文件对一些信息进行保存。
    文件存储在data/data/包名/files/目录下。

2.具体方法

2.1 写入文件

  • 关键代码
    Contex类中提供了openFileOutput()方法,
    openFileOutput(文件名,操作模式)
    文件名为保存文件的文件名。操作模式有MODE_PRIVATE和MODE_APPEND两种。
模式 作用
MODE_PRIVATE 如果没有就新建,如果有就覆盖其中内容
MODE_APPEND 如果没有就新建,如果有就追加在其后
  • FileOutputStream->OutputStreamWriter->BufferedWriter
    使用BufferedWirter的writer()方法写入数据,写入之后使用close()关闭。

2.2 读出文件

  • Contex类中提供了openFileInput()方法,
    openFileInput(文件名)
    文件名为保存文件的文件名。
  • FileInputStream->InputStreamReader->BufferedReader
    使用BufferedReader的readLine()方法一行一行的读入,读完后使用close()关闭,存入StringBuilder的实例化对象中,再使用toString()方法转化为String类型的数据。

3.例子

  • 覆盖写入文件代码:
public void outputFilePrivate() {
        FileOutputStream flieOS = null;
        BufferedWriter bfWriter = null;
        try {
            flieOS = openFileOutput("data2", Context.MODE_PRIVATE);
            bfWriter = new BufferedWriter(new OutputStreamWriter(flieOS));
            bfWriter.write(edtWrite.getText().toString());
            Toast.makeText(this, edtWrite.getText().toString(), Toast.LENGTH_SHORT).show();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                bfWriter.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
  • 追加写入文件代码:
 public void outputFileAppend() {
        FileOutputStream flieOS = null;
        BufferedWriter bfWriter = null;
        try {
            flieOS = openFileOutput("data2", Context.MODE_APPEND);
            bfWriter = new BufferedWriter(new OutputStreamWriter(flieOS));
            bfWriter.write(edtWrite.getText().toString());
            Toast.makeText(this, edtWrite.getText().toString(), Toast.LENGTH_SHORT).show();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                bfWriter.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
  • 读出文件代码:
 public void inputFile() {
        FileInputStream fileIS = null;
        BufferedReader bfReader = null;
        try {
            fileIS = openFileInput("data2");
            bfReader = new BufferedReader(new InputStreamReader(fileIS));
            String text = bfReader.readLine();
            edtRead.setText(text);
            Toast.makeText(this, text, Toast.LENGTH_SHORT).show();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                bfReader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

结果图如下:

  • 覆盖写入


    覆盖写入
  • 读取文件


    读取文件
  • 追加写入

追加写入
  • 读取文件


    读取文件

4.日常福利

Github源码

相关文章

  • SharedPreferences

    Android 中的 Preference Android 中对于数据持久化有四种基本方式: 用文件保存 SQLi...

  • 九.Android 数据持久化四种方法之一——文件保存

    1.文件保存概述 Android允许使用文件对一些信息进行保存。文件存储在data/data/包名/files/目...

  • 【Android开发基础系列】数据持久化专题

    1 Android四种数据持久化方式 Android有四种数据持久化方式: SharePreference 轻量...

  • iOS开发-数据持久化之plist文件

    摘要 通过对plist文件的操作对iOS开发中一些数据进行持久化保存。 iOS数据持久化之一——plist文件 i...

  • iOS开发之数据的持久化存储机制

    IOS中数据的持久化保存这块内容,类似于Android中文件的几种常见的存储方式。对于数据的持久化存储,ios中一...

  • SharePreference技巧之保存一个对象

    在Android中我们经常需要持久化保存数据,这时可以使用文件,SharePreference,以及SQLite等...

  • iOS数据持久化小结

    持久化就是把数据保存在硬盘上而不是内存里,程序重启后数据不会消失。iOS中数据持久化方法有:plist文件(属性列...

  • 数据持久化

    数据持久化 数据持久化的方式有四种:属性列表(plist文件)/偏好设置/对象归档/SQLite数据库/Core ...

  • redis持久化策略

    一:持久化简介 redis是一种内存数据库,数据保存在内存中,但也可以将数据保存到文件中称之持久化,持久化的目的是...

  • iOS--FMDB

    一、数据持久化 数据持久化是通过文件将数据存储在磁盘上 1、iOS下主要有四种数据持久化方式 1)属性列表 2)对...

网友评论

    本文标题:九.Android 数据持久化四种方法之一——文件保存

    本文链接:https://www.haomeiwen.com/subject/hmnksttx.html