从内部存储编辑文件

时间:2014-10-13 07:15:32

标签: java android file

如何编辑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;
    }
}

2 个答案:

答案 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

希望它有所帮助!如有任何问题,请在下面发表评论。