如何在覆盖时增加文件大小

时间:2014-08-21 16:58:18

标签: java android

有没有办法在覆盖它时增加文本文件大小以适应其内容?当我覆盖文件时,大小始终与原始大小保持一致。当我需要用比原来包含的更多的字节覆盖它时,这是一个问题:

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);

有什么建议吗?

1 个答案:

答案 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问题(缓存内存中的文件)。