【Android】数据存储-java IO流文件存储

  1.数据持久化:将在内存中的瞬时数据保存在存储设备中。瞬时数据:设备关机数据丢失。持久化技术提供一种机制可以让数据在瞬时状态和持久状态之间转换。

  2.Android中简单的三种存储方式:文件存储、SharedPreference 存储以及数据库存储。

    1.文件存储 :不对数据作任何处理,将数据原封不动地存储到文件中,适合存储一些简单的文本数据和二进制数据。  

      a.将数据存储到文件中

         Context类提供了一个openFileOutput()方法,可以用于将数据存储到文件中。这个方法接收两个参数,第一个参数是文件名(文件名不能包含路径,默认路径为/data/data/<packagename>/files/),第二个参数是文件的操作模式,主要有MODE_PRIVATE 和 MODE_APPEND两种模式,前者是默认模式,当指定同样文件名时,所写入内容会覆盖掉原文件的内容,后者表示文件名相同时将内容追加到原文件内容后,不存在该文件则创建新文件。openFileOutput 方法返回一个FileOutputStream对象。

public void save() {
String data = "Data to save";
FileOutputStream out = null;
BufferedWriter writer = null;
try {
out = openFileOutput("data", Context.MODE_PRIVATE);
writer = new BufferedWriter(new OutputStreamWriter(out));
writer.write(data);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (writer != null) {
writer.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}/**步骤:*1.通过openFileOutput()方法的到一个FIleOutputStream对象*2.通过FileOutputStream对象构造出一个OutputStreamWriter对象*3.通过OutputStreamWriter对象构造出BufferedWriter对象*4.通过BufferedWriter将文本内容写入文件*/

      b.从文件中读取数据

        类似于将数据存储到文本中,Context类中提供了一个openFIleInput()方法,用于从文本中读取数据。这个方法只接收一个参数即要读取文件的文件名,系统在默认目录中找到这个文件后返回一个FilleInputStream对象,得到这个对象后通过java IO流就可以将数据读取出来了。

public String load() {
FileInputStream in = null;
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();
}

/**1.先通过openFileInput获取到FileInputStream对象*2.通过FileInputStream获取到InputStreamReader对象*3.通过InputSTreamReader获得BufferedReader对象*4.通过BufferedReader进行一行行读取,把文件中所有的文本内容全部读取出来并存在StringBuilder中*5.将读取到的内容返回*/

   

时间: 2024-12-20 20:17:45

【Android】数据存储-java IO流文件存储的相关文章

java IO流文件的读写具体实例(转载)

引言: 关于java IO流的操作是非常常见的,基本上每个项目都会用到,每次遇到都是去网上找一找就行了,屡试不爽.上次突然一个同事问了我java文件的读取,我一下子就懵了第一反应就是去网上找,虽然也能找到,但自己总感觉不是很踏实,所以今天就抽空看了看java IO流的一些操作,感觉还是很有收获的,顺便总结些资料,方便以后进一步的学习... IO流的分类:1.根据流的数据对象来分:高端流:所有的内存中的流都是高端流,比如:InputStreamReader  低端流:所有的外界设备中的流都是低端流

Java—IO流 文件的编码

文件的编码 package cn.test; import java.io.UnsupportedEncodingException; public class Demo15 { public static void main(String[] args) throws UnsupportedEncodingException { String str = "你好ABC123"; byte[] b1 = str.getBytes();//转换成字节系列用的是项目默认的编码 for (b

java IO流 ---文件的读写操作

1 package com.io; 2 import java.io.File; 3 import java.io.FileInputStream; 4 import java.io.FileOutputStream; 5 import java.io.FileNotFoundException; 6 import java.io.IOException; 7 public class Test2 { 8 9 /** 10 * @param args 11 * @throws IOExcepti

java IO流文件拷贝文件(字符流标准写法)

public static void copyFile2(String path1, String path2) { Reader reader = null; Writer writer = null; try { // 打开流 reader = new FileReader(path1); writer = new FileWriter(path2); // 进行拷贝 int ch = -1; char [] arr=new char[1024]; while ((ch = reader.r

java IO流文件拷贝文件(字节流标准写法)

public static void copyFile(String srcPath, String destPath) { FileInputStream fis = null; FileOutputStream fos = null; try { fis = new FileInputStream(srcPath); fos = new FileOutputStream(destPath); byte[] byt = new byte[1024 * 1024]; int len = 0; w

java io流 创建文件、写入数据、设置输出位置

java io流 创建文件 写入数据 改变system.out.print的输出位置 //创建文件 //写入数据 //改变system.out.print的输出位置 import java.io.*; public class Index{ public static void main(String[] args) throws Exception{ /** * 存储为二进制,给计算机看的 */ //创建文件 DataOutputStream sjl = new DataOutputStrea

Java:IO流与文件基础

Java:IO流与文件基础 说明: 本文所有内容包含图片均为MrSaber自己编写,转载请练习我哦. 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象称作 输入流,可以向其中写入一个字节序列的对象称作 输出流. ? 这些字节序列的来源可以是:文件.网络连接.内存块等. ? 抽象类InputStream和OutputStream是构成输入/输出(I/O)的基础. ? 因为面向字节的流

java io流 运行错误时,保存异常到文件里面

java io流 运行错误时,保存异常到文件里面 下面这个实例,运行后,输入数字,为正确,如果输入字符串,则报错,保存错误信息 //运行错误时,保存异常到文件里面 //下面这个实例,运行后,输入数字,为正确,如果输入字符串,则报错,保存错误信息 import java.io.*; import java.util.*; public class Index{ public static void main(String[] args) throws Exception{ try{ //创建文件

java io流(字节流)复制文件

java io流(字节流) 复制文件 //复制文件 //使用字节流 //复制文本文件用字符流,复制其它格式文件用字节流 import java.io.*; public class Index{ public static void main(String[] args) throws Exception{ //字符流方式 //FileReader fz = new FileReader("E:/1.txt"); //FileWriter zt = new FileWriter(&qu