如何在android中覆盖sdcard中的文件?

时间:2016-04-20 09:59:20

标签: android

我需要在Android设备的SD卡中读取一个文件,并将该文件的内容写入已存在的SD卡中的另一个文件中。

以下是我在SD卡中的任何位置读取文件的代码。

public String readFromFile(String fileName) {

    String ret = "";
    try {

        File sdcard = Environment.getExternalStorageDirectory();
        //Get the text file
        File file = new File(sdcard, fileName);


        BufferedReader bufferedReader = new BufferedReader(new FileReader(file));

        if ( bufferedReader != null ) {


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

            while ( (receiveString = bufferedReader.readLine()) != null ) {
                stringBuilder.append(receiveString);
            }

            ret = stringBuilder.toString();
        }
    }
    catch (FileNotFoundException e) {
        Log.e("login activity", "File not found: " + e.toString());
    } catch (IOException e) {
        Log.e("login activity", "Can not read file: " + e.toString());
    }

    return ret;
}

有人可以告诉我如何在阅读后将该文件的内容复制到SD卡上的另一个文件中。

我不想追加,而是覆盖文件的内容。

我需要这种格式的方法

void writeFile(String fileName, String Data){

//code to overwite with given data

}

有人可以帮助我

提前致谢。

1 个答案:

答案 0 :(得分:12)

void writeFile(String fileName, String data) {
     File outFile = new File(Environment.getExternalStorageDirectory(), fileName);
     FileOutputStream out = new FileOutputStream(outFile, false);
     byte[] contents = data.getBytes();
     out.write(contents);
     out.flush();
     out.close();
}

最重要的部分是FileOutputStream构造函数中的false。第二个参数是append。如果设置为false,则文件将被覆盖(如果存在)。