• 文件存储


    文件存储是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。

  • 相关阅读:
    面经二
    面经一
    Java集合-HashSet
    Java集合-LinkedList
    Java集合-ArrayList
    @JsonIgnoreProperties注解不起作用的问题解决
    纯JS实现图片验证码功能并兼容IE6-8
    java设计模式之桥接模式
    java设计模式之职责链模式
    WPF笔记:WPF自定义treeview样式及数据绑定
  • 原文地址:https://www.cnblogs.com/ngy-liupeng/p/15173895.html
Copyright © 2020-2023  润新知