安卓中写文件和读取文件方式

安卓中如果用SharedPreference进行存储数据,该共享数据每次都会被重写,如果想进行数据存储又不想使用数据库,可以利用该方式进行存储数据,FileWriter fw = new FileWriter(file,true)中第二个参数如果是false,则每次写都会覆盖原来的数据,true则每次写都会接着前一次写的数据,不会被覆盖。


	import java.io.BufferedReader;
	import java.io.BufferedWriter;
	import java.io.File;
	import java.io.FileReader;
	import java.io.FileWriter;
	import java.util.ArrayList;
	
	
	/**
	 * @author wunu
	 */
	public class FileUtil {
	
	    /**
	     * 把字符串保存到指定路径的文本文件
	     * @param path
	     * @param txt
	     */
	    public static void saveText(String path, String txt) {
	        try {
	            File file = new File(path);
	            // 根据指定文件路径构建文件输出流对象
	            FileWriter fw = new FileWriter(file,true);
	            BufferedWriter bw = new BufferedWriter(fw);
	            bw.write(txt);
	            bw.newLine();
	            bw.close();
	        } catch (Exception e) {
	            e.printStackTrace();
	        }
	    }
	
	    /**
	     * 从指定路径的文本文件中读取内容字符串
	     * @param path
	     * @return
	     */
	    public static ArrayList<String> openText(String path) {
	        // 创建 ArrayList<String> 集合保存文本数据
	        ArrayList<String> list = new ArrayList<>();
	        try {
	            File file = new File(path);
	            // 根据指定文件路径构建文件输入流对象
	            FileReader fr = new FileReader(file);
	            BufferedReader br = new BufferedReader(fr);
	            // 定义字符串,保存的读取的一行文字
	            String line = null;
	            while ((line = br.readLine()) != null){
	                list.add(line);
	            }
	            br.close();
	        } catch (Exception e) {
	            e.printStackTrace();
	        }
	        return list;
	    }
	}

安卓存储可分为内部存储和外部存储,像我们的新建的 SharedPreference 和 数据库都存在内存中,一般内存有限,不要所有文件都往里面塞,这时我们可以进行外部存储。
其中外部存储又分为:公共文件Public files 和私有文件Private files
其中Public files文件是可以被自由访问,且文件的数据对其他应用或者用户来说都是由意义的,当应用被卸载之后,其卸载前创建的文件仍然保留。比如camera应用,生成的照片大家都能访问,而且camera不在了,照片仍然在。如果你想在外存储上放公共文件你可以使用getExternalStoragePublicDirectory()获取path路径。
Private files文件,Google官方建议我们App的数据应该存储在外部存储的私有目录中该App的包名下,这样当用户卸载掉App之后,相关的数据会一并删除。可以使用getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS).toString() + "/"获取当前App的私有外部存储。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值