我正在使用FileOutputStream将我的内容写入Android设备SD卡上的文件“sample.txt”
但每次我尝试编写内容时,FileOutputStream都会将其写入磁盘上的其他位置。
我检查了文件“sample.txt”的起始位置,每次增加512字节!
我该怎么办?
答案 0 :(得分:5)
如果你覆盖该文件,那就是文件系统正在做的事情,与FileOutputStream
无关。基于闪存的文件系统避免重复使用设备的相同部分并不罕见,因为闪存具有有限数量的写入/擦除周期,因此闪存文件系统试图将写入扩展到整个设备,只有在它们是最老的区域时才重复使用以前使用过的区域。它很好,你无需做任何事情,文件系统对其进行排序。
如果您将附加到文件中,例如使用其中一个constructors that allows appending,例如:
OutputStream os = new FileOutputStream("sample.txt", true); // true = append
...然后文件正在增长,因为这就是你要求它做的事情。如果那不是您想要的,请使用其他构造函数之一或将false
传递给append
参数。