AndroidFile存储

    xiaoxiao2021-03-25  153

    Context类提供了PenFileOutput()方法与onPenFileInput()方法。

    onPenFileOutput(): 用于将数据存储到指定的文件中。这个方法接受两个参数,第一个参数为文件名,在文件创建的时候使用就是这个名称,注意这个指定文件名不包含路径,所有的文件都是默认存储到/data/data/(项目包名)/files/目录下的。第二个参数是文件的操作模式,主要有两种模式可以选择MODE_PRIVATEMODE_APPEND

    MODE_PRIVATE: 默认操作,表示当指定同样文件名的时候,所写入的内容将会覆盖原文件中的内容

    MODE_APPEND: 表示如果该文件存在,就往文件里面追加内容,不存在就创建新文件夹。

    MODE_WOELD_READABLE和MODE_WORLD_WRITEABLE: 这两种模式允许其他的应用程序对我们程序中的文件进行读写操作,由于这两种模式过于危险,容易引起应用的安全漏洞,已经在Android4.2版本废弃

    onPenFileInput(): 用于从文件中读取数据。它只接受一个参数,即要读取的文件名,然后系统会自动到/data/data/(项目包名)/files/目录下加载这个文件。

    Java IO流 如果不关闭的话,那么这个IO资源就会被他一直占用,这样别人想用就没有办法用了,所以这会造成资源浪费。关闭IO流最好写在finally中,如果出现一个异常,你就关不掉了。

    数据存储 public void save(String s) { FileOutputStream out; BufferedWriter writer = null; try { //fileName 文件名 MODE_PRIVATE:模式 out = openFileOutput(fileName, MODE_PRIVATE);//获取FileOutputStream 对象 //用Java Io流的方式将数据写入文件 writer = new BufferedWriter(new OutputStreamWriter(out)); try { writer.write(s);//写入数据 } catch (IOException e) { e.printStackTrace(); } } catch (FileNotFoundException e) { e.printStackTrace(); } finally { if (writer != null) try { writer.close(); } catch (IOException e) { e.printStackTrace(); } } } 数据读取 public String load() { FileInputStream in; StringBuffer content = new StringBuffer(); try { //fileName文件名 in = openFileInput(fileName);//获得FileInputStream 对象 reader = new BufferedReader(new InputStreamReader(in)); String len = ""; try { //读取一行数据 while ((len = reader.readLine()) != null) { content.append(len); } } catch (IOException e) { e.printStackTrace(); } } catch (FileNotFoundException e) { e.printStackTrace(); } finally { if (reader != null) try { //用完Io流记得关闭 reader.close(); } catch (IOException e) { e.printStackTrace(); } } return content.toString(); }

    查看File是否写入成功

    也可以把File文件导出来,用电脑查看你File里面的内容。

    转载请注明原文地址: https://ju.6miu.com/read-4667.html

    最新回复(0)