我需要在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
}
有人可以帮助我
提前致谢。
答案 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,则文件将被覆盖(如果存在)。