'FileOutputStream in dart flutter

what's the equivalent fileoutputstream of java in dart? Java code

file = new FileOutputStream(logFile, true);
byte[] input = "String".getBytes();
file.write(input);

java file output

String

Ive tried this in dart Dart code

var file = File(logFile!.path).openWrite();
List input = "String".codeUnits;
file.write(input);

[String]

and every time I open the file again to append "String2" and "String3" to it, the output will be

[String][String2][String3]

as oppose to java's output

StringString3String3

to sum it up, is there a way to fix/workaround this? why each array bytes written in dart will be a new array instead of append into an existing one?



Solution 1:[1]

You can achieve that by using File.writeAsString() and using FileMode.append. Picking up your example, this would be:

var file = File(logFile!.path);
file.writeAsString("String", mode: FileMode.append);

Solution 2:[2]

did you try writeAsString() ?

import 'dart:io';

void main() async {
  final filename = 'file.txt';
  var file = await File(filename).writeAsString('some content');
  // Do something with the file.
}

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 derZorn
Solution 2 Mike