fileOverWrite function
bool
fileOverWrite(
- File file, {
- bool? isFileExist,
- FileWriteLevel level = FileWriteLevel.medium,
- bool autoDelete = true,
Overwrite the content of a file based on the specified level pattern.
I/O exceptions during the write operation are propagated to the caller.
level: Fill content: low for zeros, medium for bits, high for random. Defaults to medium.
Implementation
bool fileOverWrite(
File file, {
bool? isFileExist,
FileWriteLevel level = FileWriteLevel.medium,
bool autoDelete = true, // auto delete after save
}) {
isFileExist ??= file.existsSync();
if (!isFileExist) return false;
final fileSize = file.lengthSync();
final random = Random.secure();
// fixed-length list
List<int> buffer = switch (level) {
FileWriteLevel.low => List<int>.filled(fileSize, 0),
FileWriteLevel.medium => List<int>.generate(fileSize, (i) => i % 2),
_ => List<int>.generate(fileSize, (i) => random.nextInt(256)),
};
file.writeAsBytesSync(buffer, flush: true);
buffer = []; // use dart gc
if (autoDelete) file.deleteSync();
return true;
}