diff --git a/src/main/java/li/cil/oc/server/fs/Capacity.scala b/src/main/java/li/cil/oc/server/fs/Capacity.scala index f0a9d2fdd..3e39e005b 100644 --- a/src/main/java/li/cil/oc/server/fs/Capacity.scala +++ b/src/main/java/li/cil/oc/server/fs/Capacity.scala @@ -78,6 +78,9 @@ trait Capacity extends OutputStreamFileSystem { case None => None case Some(stream) => used += delta + if (mode == Mode.Append) { + stream.seek(stream.length()) + } Some(new CountingOutputHandle(this, stream)) } } diff --git a/src/main/java/li/cil/oc/server/fs/FileOutputStreamFileSystem.scala b/src/main/java/li/cil/oc/server/fs/FileOutputStreamFileSystem.scala index 0e43ddc0f..de1eaa9a6 100644 --- a/src/main/java/li/cil/oc/server/fs/FileOutputStreamFileSystem.scala +++ b/src/main/java/li/cil/oc/server/fs/FileOutputStreamFileSystem.scala @@ -23,8 +23,7 @@ trait FileOutputStreamFileSystem extends FileInputStreamFileSystem with OutputSt override protected def openOutputHandle(id: Int, path: String, mode: Mode): Option[OutputHandle] = Some(new FileHandle(new RandomAccessFile(new io.File(root, path), mode match { - case Mode.Append => "a" - case Mode.Write => "w" + case Mode.Append | Mode.Write => "rw" case _ => throw new IllegalArgumentException() }), this, id, path))