0

我正在使用 FileOutputStream 将我的内容写入 android 设备 SD 卡上的文件“sample.txt”

但每次我尝试写入内容时,FileOutputStream 都会将其写入磁盘上的不同位置。

我检查了文件“sample.txt”的起始位置,每次增加 512 字节!

我应该怎么办?

4

1 回答 1

5

如果您正在覆盖文件,那么这只是文件系统在做它的事情,与FileOutputStream. 基于闪存的文件系统避免反复重用设备的同一部分并不罕见,因为闪存的写入/擦除周期数量有限,因此闪存文件系统尝试将写入分散到整个设备,仅当它们是最旧的可用区域时才重新使用以前使用的区域。没关系,您无需为此做任何事情,文件系统会对其进行分类。

如果您要附加到文件,例如使用允许附加的构造函数之一,例如:

OutputStream os = new FileOutputStream("sample.txt", true); // true = append

...然后文件正在增长,因为这就是您要求它执行的操作。如果这不是您想要的,请使用其他构造函数之一或传递false参数append

于 2012-02-01T10:28:45.423 回答