diff --git a/src/main/java/dan200/computercraft/core/apis/handles/BinaryReadableHandle.java b/src/main/java/dan200/computercraft/core/apis/handles/BinaryReadableHandle.java
index 91934f086..d9078ab00 100644
--- a/src/main/java/dan200/computercraft/core/apis/handles/BinaryReadableHandle.java
+++ b/src/main/java/dan200/computercraft/core/apis/handles/BinaryReadableHandle.java
@@ -118,7 +118,7 @@ public class BinaryReadableHandle extends HandleGeneric
                     {
                         single.clear();
                         int b = m_reader.read( single );
-                        return b == -1 ? null : new Object[] { single.get( 0 ) };
+                        return b == -1 ? null : new Object[] { single.get( 0 ) & 0xFF };
                     }
                 }
                 catch( IOException e )
diff --git a/src/main/resources/assets/computercraft/lua/rom/apis/io.lua b/src/main/resources/assets/computercraft/lua/rom/apis/io.lua
index c7890f12f..73e50da08 100644
--- a/src/main/resources/assets/computercraft/lua/rom/apis/io.lua
+++ b/src/main/resources/assets/computercraft/lua/rom/apis/io.lua
@@ -63,7 +63,7 @@ handleMetatable = {
             if self._closed then error("attempt to use a closed file", 2) end
 
             local handle = self._handle
-            if not handle.read then return nil, "Not opened for reading" end
+            if not handle.read and not handle.readLine then return nil, "Not opened for reading" end
 
             local n = select('#', ...)
             local output = {}