writeTextContent function
void
writeTextContent(
- String absoluteFilePath,
- String content,
- String encoding,
- LineEndingType lineEndings,
Write text content to a file preserving encoding and line endings.
Implementation
void writeTextContent(
String absoluteFilePath,
String content,
String encoding,
LineEndingType lineEndings,
) {
var finalContent = content;
// Restore line endings
if (lineEndings == LineEndingType.crlf) {
finalContent = content.replaceAll('\n', '\r\n');
} else if (lineEndings == LineEndingType.cr) {
finalContent = content.replaceAll('\n', '\r');
}
final file = File(absoluteFilePath);
if (encoding == 'utf16le') {
final codes = finalContent.codeUnits;
final bytes = Uint8List(2 + codes.length * 2);
bytes[0] = 0xFF;
bytes[1] = 0xFE;
for (var i = 0; i < codes.length; i++) {
bytes[2 + i * 2] = codes[i] & 0xFF;
bytes[2 + i * 2 + 1] = (codes[i] >> 8) & 0xFF;
}
file.writeAsBytesSync(bytes);
} else {
file.writeAsStringSync(finalContent, encoding: utf8);
}
}