文章来源于: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,转载请注明出处。