如何编辑Android应用中内部存储空间中文件的内容。
我想删除整个内容,然后再次写入文件,而不是将数据附加到当前内容。
这是我的读写代码:
package com.example.cargom;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import android.content.Context;
public class FileManager {
FileOutputStream outputStream;
FileInputStream inputStream;
public void writeToFile(Context context, String fileName, String data) {
try {
outputStream = context.openFileOutput(fileName, Context.MODE_PRIVATE);
outputStream.write(data.getBytes());
outputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public String readFromFile(Context context, String fileName) {
String data = "";
int c;
try {
inputStream = context.openFileInput(fileName);
while ((c = inputStream.read()) != -1) {
data = data + Character.toString((char) c);
}
inputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return data;
}
}
答案 0 :(得分:0)
您可以先删除文件:
File f = new File(filename);
if(f.exists()){
f.delete();
}
然后创建一个具有相同路径/名称的新的并写入它。
我假设你的filename
是设备上文件的路径。
但可能我没有得到你真正的问题?
答案 1 :(得分:0)
你的班级已经在做你想要的了。它首先擦除文件的内容,然后在其上写入。为了进一步理解,
使用 MODE_PRIVATE 启动流时,第二次尝试写入文件时,文件中已有的内容将被删除并写入新内容。
outputStream = context.openFileOutput(fileName, Context.MODE_PRIVATE);
当您使用 MODE_APPEND 时,已经存在的内容将保留,新内容将附加到文件中。
outputStream = context.openFileOutput(fileName, Context.MODE_APPEND);
有关处理内部存储空间中文件的更多参考和详细知识,我建议您观看以下三个简短视频,通过演示为您提供详细说明。
http://www.youtube.com/watch?v=Jswr6tkv8ro&index=4&list=PLonJJ3BVjZW5JdoFT0Rlt3ry5Mjp7s8cT http://www.youtube.com/watch?v=cGxHphBjTBk&index=5&list=PLonJJ3BVjZW5JdoFT0Rlt3ry5Mjp7s8cT http://www.youtube.com/watch?v=mMcrj_To18k&index=6&list=PLonJJ3BVjZW5JdoFT0Rlt3ry5Mjp7s8cT
希望它有所帮助!如有任何问题,请在下面发表评论。