• 文件存储


    数据存储在文件中,  

      Context类提供的一个openFileOutPut()方法,可以存储在文件中,该方法接受两个参数,第一个参数是存储的文件名称,第二个参数是文件的操作模式,MODE_PRIVATE是默认的操作模式,意思是指定相同名字的文件会覆盖之前的,MODE_APPEND是在文件内容的后面追加内容。

      openFileOutput方法返回的是一个FileOutputStream 对象,无法直接写入文件,但是BufferedWriter 对象有写入方法,但是该类只接受write类,所以要new 一个OutputStreamWriter对象,里面在放一个FileOutputStream对象。然后调用BufferedWriter 类的write()方法,将数据写入文件。

    在数据流交互的时候会有异常,记住要放在try/catch块里面。

     public void save(String input) {
            FileOutputStream out;
            BufferedWriter bufferedWriter = null;
            try {
                out = openFileOutput("data", Context.MODE_PRIVATE);
                bufferedWriter = new BufferedWriter(new OutputStreamWriter(out));
                bufferedWriter.write(input);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (bufferedWriter != null)
                        bufferedWriter.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    以上是将数据存储在文件中,所以有存就有读。读取文件的数据和存储数据相反,一个output 一个input。Context还是提供了openFileInput()方法,返回类型还是FileInputStream ,不能直接读取,还是BufferedReader类有readLine()方法读取,所以FileInputStream类要向BufferReader类转化,就要利用中间类(InputStreamReader),该中间类 既可以接受FielInputStream对象,又可以作为参数向BufferedReader类传递,BufferReader 对象创建成功,就可以调用readLine(),读取数据并且可以存储在 StringBuilder 的对象中,可以直接String对象获取存储信息。

    public String  Read() {
            FileInputStream inputStream;
            BufferedReader bufferedReader = null;
            StringBuilder stringBuilder = new StringBuilder();
            try {
                inputStream = openFileInput("data");
                bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
                String line;
                while ((line = bufferedReader.readLine()) != null) {
                    stringBuilder.append(line);
                }
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (bufferedReader != null)
                        bufferedReader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return stringBuilder.toString().trim();
        }
  • 相关阅读:
    elasticsearch 启动
    经纬度解析API
    http://t.cn/xxxxx的短链接如何生成?
    IIS+PHP上传文件大小限制和上传时间限制,iis7和iis8上传文件大小限制和上传时间限制
    WIN2003+IIS6环境SSL证书的安装
    如何创建文件名前带点的文件夹,文件夹名字带点
    解决MYSQL的错误:Got a packet bigger than 'max_allowed_packet' bytes
    php 设置临时内存和超时设置脚本最大执行时间
    谷歌地图 API 开发之获取坐标以及街道详情
    隐藏 google 地图 Logo 隐藏 百度 地图 Logo
  • 原文地址:https://www.cnblogs.com/zhoushenglei/p/7147420.html
Copyright © 2020-2023  润新知