文件存储

文件存储是Android中最基本的一种数据存储方式,它不对存储的内容进行任何格式的格式化处理,所有数据都原封不动的保存到文件中,因而它比较适合用于存储一些简单的文本数据或二进制数据。

保存数据

Context类中提供一个openFileOutPut(),可以用于将数据存储到指定的文件。这个方法接收两个参数,第一个参数是文件名,该文件存储在Android Studio界面右下角的Device File Explorer,找到data/data/projectName/files,该文件就在files目录文件下。第二个参数是文件的操作模式,主要有两种模式可选,MODE_PRIVATE和MODE_APPEND。其中MODE_PRIVATE是默认的操作模式,表示当指定同样的文件名的时候,所写的内容将覆盖原文件的内容,而MODE_APPEND则表示如果该文件已存在,就往文件里面追加内容,不存在就创建新文件。

    FileOutputStream out;
    BufferedWriter writer = null;

    try {
        out = openFileOutput("data", Context.MODE_PRIVATE);
        writer = new BufferedWriter(new OutputStreamWriter(out));
        writer.write(inputText);
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            if (writer != null) {
                writer.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

读取数据

Context中提供一个openFileInput(),用于从文件中读取数据。这个方法只接收一个参数,即要读取的文件名。我们这里创建一个load方法用来读取一个已经存在的data文件,返回里面的内容。

private String load() {

        FileInputStream in;
        BufferedReader reader = null;
        StringBuilder content = new StringBuilder();

        try {
            in = openFileInput("data");
            reader = new BufferedReader(new InputStreamReader(in));
            String line = "";
            while ((line = reader.readLine()) != null) {
                content.append(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (reader != null) {
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return content.toString();
    }

另外补充两个方法,一个是EditText类的setSelection(),这个方法接收一个参数,可以将光标移动到文本的任意位置,通常指定文本的末尾位置以便继续输入。另外一个方法是TextUtils.isEmpty(),这份方法可以一次性进行两种空值判断。当传入的字符串等于null或者等于空字符串的时候,这个方法都会返回true。

posted @ 2021-08-30 15:31  橘子小哥  阅读(11)  评论(0编辑  收藏  举报