有没有办法在覆盖它时增加文本文件大小以适应其内容?当我覆盖文件时,大小始终与原始大小保持一致。当我需要用比原来包含的更多的字节覆盖它时,这是一个问题:
String actual_name = "/storage/sdcard0/my_file_name.xml";
FileOutputStream fileos = new FileOutputStream(actual_name);
/**do a bunch of stuff to create XML string**/
fileos.write(myXMLstring.getBytes());
fileos.close();
在我的情况下,原始文件大小为1016字节。即使我有4k字节的新数据,前1016个字节都会被写入文件。顺便说一句,我已经尝试删除该文件,如果它存在,然后写入它,但这没有帮助:
String fname = "my_file_name.xml";
File ROOT = Environment.getExternalStorageDirectory();
File file1 = new File(ROOT, fname);
if(!file1.exists()){
file1.createNewFile();
}
else{
//returns true but doesn`t change the file size or even the created date
boolean did_delete = file1.delete();
if (did_delete){
file1.createNewFile();
}
}
String x = file1.getAbsolutePath();
FileOutputStream fileos = new FileOutputStream(x);
有什么建议吗?
答案 0 :(得分:1)
好的,这是我发现的:
要删除:
myFile= new File(Environment.getExternalStorageDirectory(), filename);
myFile.delete();
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(myFile)));
myFile指向您的文件。
要实际看到文件名已更改,您必须断开USB连接线,然后重新连接。我不确定这是Android问题还是Windows问题(缓存内存中的文件)。