Java 为什么FileOutputStream会写入磁盘上的不同位置?
我正在使用FileOutputStream将我的内容写入android设备SD卡上的文件“sample.txt” 但每次我尝试写入内容时,FileOutputStream都会将其写入磁盘上的不同位置 我已经检查了文件“sample.txt”的起始位置,每次它增加512字节 我该怎么办?如果您要覆盖文件,那么这只是文件系统在做它的事情,与Java 为什么FileOutputStream会写入磁盘上的不同位置?,java,fileoutputstream,Java,Fileoutputstream,我正在使用FileOutputStream将我的内容写入android设备SD卡上的文件“sample.txt” 但每次我尝试写入内容时,FileOutputStream都会将其写入磁盘上的不同位置 我已经检查了文件“sample.txt”的起始位置,每次它增加512字节 我该怎么办?如果您要覆盖文件,那么这只是文件系统在做它的事情,与FileOutputStream无关。对于基于闪存的文件系统来说,避免重复使用设备的同一部分并不罕见,因为闪存的写入/擦除周期有限,所以闪存文件系统会尝试将写入扩
FileOutputStream
无关。对于基于闪存的文件系统来说,避免重复使用设备的同一部分并不罕见,因为闪存的写入/擦除周期有限,所以闪存文件系统会尝试将写入扩展到整个设备,仅当以前使用的区域是最旧的时才重复使用。这很好,你不需要做什么,文件系统会把它整理好
如果要附加到文件,例如,使用以下选项之一,例如:
…然后文件在增长,因为这是您要求它做的。如果这不是您想要的,请使用其他构造函数之一,或者对append
参数传递false
。如果您要覆盖文件,那么这只是文件系统在做它的事情,与FileOutputStream
无关。对于基于闪存的文件系统来说,避免重复使用设备的同一部分并不罕见,因为闪存的写入/擦除周期有限,所以闪存文件系统会尝试将写入扩展到整个设备,仅当以前使用的区域是最旧的时才重复使用。这很好,你不需要做什么,文件系统会把它整理好
如果要附加到文件,例如,使用以下选项之一,例如:
…然后文件在增长,因为这是您要求它做的。如果这不是您想要的,请使用其他构造函数之一,或者对append
参数传递false
OutputStream os = new FileOutputStream("sample.txt", true); // true = append