public static MutableString /*!*/ Read(RubyIO /*!*/ self, DynamicNull bytes, [DefaultProtocol, Optional] MutableString buffer) { if (buffer == null) { buffer = MutableString.CreateBinary(); } else { buffer.Clear(); } self.AppendBytes(buffer, Int32.MaxValue); return(buffer); }
public static MutableString Read(RubyIO /*!*/ self, [DefaultProtocol] int bytes, [DefaultProtocol, Optional] MutableString buffer) { self.RequireReadable(); if (bytes < 0) { throw RubyExceptions.CreateArgumentError("negative length -1 given"); } if (buffer == null) { buffer = MutableString.CreateBinary(); } else { buffer.Clear(); } int bytesRead = self.AppendBytes(buffer, bytes); return((bytesRead == 0 && bytes != 0) ? null : buffer); }
public static MutableString /*!*/ Read(RubyIO /*!*/ self, [DefaultProtocol] int bytes, [DefaultProtocol, Optional] MutableString buffer) { self.AssertOpenedForReading(); if (self.IsEndOfStream()) { return(null); } if (buffer == null) { buffer = MutableString.CreateBinary(); } buffer.Clear(); if (!self.PreserveEndOfLines) { for (int i = 0; i < bytes; ++i) { int c = self.ReadByteNormalizeEoln(); if (c == -1) { return(buffer); } else { buffer.Append((byte)c); } } } else { var fixedBuffer = new byte[bytes]; bytes = self.ReadBytes(fixedBuffer, 0, bytes); buffer.Append(fixedBuffer, 0, bytes); } return(buffer); }