Added a method for reading into a ByteBuffer
diff --git a/java/com/tigervnc/rdr/InStream.java b/java/com/tigervnc/rdr/InStream.java
index 3938a32..f713d73 100644
--- a/java/com/tigervnc/rdr/InStream.java
+++ b/java/com/tigervnc/rdr/InStream.java
@@ -23,6 +23,8 @@
 
 package com.tigervnc.rdr;
 
+import java.nio.*;
+
 import com.tigervnc.network.*;
 
 abstract public class InStream {
@@ -98,6 +100,16 @@
 
   // readBytes() reads an exact number of bytes into an array at an offset.
 
+  public void readBytes(ByteBuffer data, int length) {
+    int dataEnd = data.mark().position() + length;
+    while (data.position() < dataEnd) {
+      int n = check(1, dataEnd - data.position());
+      data.put(b, ptr, n);
+      ptr += n;
+    }
+    data.reset();
+  }
+
   public void readBytes(byte[] data, int dataPtr, int length) {
     int dataEnd = dataPtr + length;
     while (dataPtr < dataEnd) {