安卓开发文件工具类

文章来源于:https://www.deep-os.com/?id=61
在这里插入图片描述
今天在修复某个bug时,需要在应用内部存储,只需要一个开关就可以了,所以选择在应用内的存储空间中写入一个status.txt,内容写入0和1,本来是写死的代码,但是后来又在一个地方需要用到同样的功能,所以把它提出来单列了一个工具类,一个存储、一个读取。

import android.content.Context;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

/**
 * 应用内空间的文件工具类
 */
public class MyFileUtils {


    /**
     * 写入文件方法
     *
     * @param context
     * @param fileName
     * @param i        三个参数
     *                 1.上下文
     *                 2.文件名称
     *                 3.内容
     */
    public static void saveFile(Context context, String fileName, String i) {
        FileOutputStream out = null;
        BufferedWriter writer = null;
        try {
            out = context.getApplicationContext().openFileOutput(fileName, Context.MODE_PRIVATE);
            writer = new BufferedWriter(new OutputStreamWriter(out, "utf-8"));
            writer.write(i);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (writer != null) {
                    writer.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }

    /**
     * 读取文件方法
     *
     * @param context
     * @param fileName
     * @return 两个参数
     * 1.上下文
     * 2.文件名
     */
    public static String MyLoadFile(Context context, String fileName) {
        FileInputStream in = null;
        BufferedReader reader = null;
        StringBuilder content = new StringBuilder();
        try {
            in = context.getApplicationContext().openFileInput(fileName);
            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();
    }
}

文件名就是:MyFileUtil.java
写入的时候需要传入三个参数、读取的时候传入两个参数。
做一下笔记,以后再用到的话可以直接copy了。

其他:
由于我只是写入一个0或者1,所以之前我有试了直接append一个int 0或者1,一直出现乱码,当然我没有想过这方面的原因,所以各种查找安卓写入文件乱码、java写入文件乱码,当然结果也是没有找到,于是慢慢排查自己的代码,发现直接append了一个int型,于是我抱着试一试的态度写入了一个"1",字符串类型的,完美!!!所以,很多时候出现问题还是仔细看自己的代码吧。

文章来源于:https://www.deep-os.com/?id=61,转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值