LibAC-dart/lib/nbt/SnbtIo.dart

36 lines
968 B
Dart

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<Tag> 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<Tag> readFromString(String data) async {
return Tag.readStringifiedNamedTag(StringReader(data));
}
}