您的位置:首页 > 移动开发 > Android开发

封装Android文件基本操作方法

2015-10-28 18:12 405 查看
Android最基本的数据存储方式,所有数据原封不动地保存至文件中,适合存储简单的文本数据或是二进制数据。

所有文件默认存储至/data/data/<包名>/files/目录下。

openFileOutput()第一个参数是文件名,文件创建的时候就使用该名称,不可包含路径(因为默认存储至上述路径下);第二个参数是文件操作模式,有 MODE_PRIVATE和 MODE_APPEND模式(另有MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE模式允许外部程序修改本程序的文件,不安全,已废弃)。

MODE_PRIVATE:默认模式,当表示指定同样文件名时,所写入的内容将覆盖原有内容。

MODE_APPEND:如果文件已存在就直接追加内容,否则创建新文件。

可以在DDMS的File Explorer视图中,进入/data/data/<包名>/files/目录中查看。

// 向文件写数据,以Srting数据类型为例
public static void writeDataIntoFile(String dataToBeSaved) {

FileOutputStream fos = null;
BufferedWriter writer = null;

try {
fos = openFileOutput("data", Context.MODE_APPEND);
} catch (FileNotFoundException e) {
e.printStackTrace();
}

writer = new BufferedWriter(new OutputStreamWriter(fos));

try {
writer.write(dataToBeSaved);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (writer != null) {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}


// 从文件读数据,以字符串形式返回
public static String readDataFromFile() {

FileInputStream fis = null;
BufferedReader reader = null;

try {
fis = openFileInput("data");
} catch (FileNotFoundException e) {
e.printStackTrace();
}

reader = new BufferedReader(new InputStreamReader(fis));

StringBuilder stringBuilder = new StringBuilder();
String line = "";

try {
while ((line = reader.readLine()) != null) {
stringBuilder.append(line);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

return stringBuilder.toString();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: