public void copyTo(OutputStream out) throws MissingObjectException,IOException {if (isLarge()) {try (ObjectStream in = openStream()) {final long sz = in.getSize();byte[] tmp = new byte[8192];long copied = 0;while (copied < sz) {int n = in.read(tmp);if (n < 0)throw new EOFException();out.write(tmp, 0, n);copied += n;}if (0 <= in.read())throw new EOFException();}} else {out.write(getCachedBytes());}}

public virtual void CopyTo(OutputStream @out){if (IsLarge()){ObjectStream @in = OpenStream();try{long sz = @in.GetSize();byte[] tmp = new byte[8192];long copied = 0;while (copied < sz){int n = @in.Read(tmp);if (n < 0){throw new EOFException();}@out.Write(tmp, 0, n);copied += n;}if (0 <= @in.Read()){throw new EOFException();}}finally{@in.Close();}}else{@out.Write(GetCachedBytes());}}
