import 'dart:io'; import 'Stream.dart'; import 'Tag.dart'; import 'impl/CompoundTag.dart'; class SnbtIo { static void writeToFile(String file, CompoundTag tag) { File handle = File(file); if (handle.existsSync()) handle.deleteSync(); // Ensure we flush the file to 0 bytes StringBuilder builder = StringBuilder(); Tag.writeStringifiedNamedTag(tag, builder, 0); handle.writeAsString(builder.toString()); } static Future readFromFile(String file) async { File fi = File(file); String data = await fi.readAsString(); StringReader reader = StringReader(data); return Tag.readStringifiedNamedTag(reader); } static String writeToString(CompoundTag tag) { StringBuilder builder = StringBuilder(); Tag.writeStringifiedNamedTag(tag, builder, 0); return builder.toString(); } static Future readFromString(String data) async { return Tag.readStringifiedNamedTag(StringReader(data)); } }