public static String readLine()

in src/main/java/org/apache/datasketches/Files.java [273:310]


  public static String readLine(final ByteBuffer mbBuf, final ByteArrayBuilder bab,
      final Charset charset) {
    if (!mbBuf.hasRemaining()) {
      return null;
    }
    final ByteArrayBuilder bab1;
    if (bab == null) {
      bab1 = new ByteArrayBuilder();
    } else {
      bab1 = bab;
      bab1.setLength(0);
    }
    while (mbBuf.hasRemaining()) {
      final byte b = mbBuf.get();
      if (b == LF) {
        break; // EOL
      }
      if (b == CR) {
        if (mbBuf.hasRemaining()) {
          // peek next byte without moving position
          if (mbBuf.get(mbBuf.position()) == LF) {
            mbBuf.get(); // consume it
          }
        }
        break; // EOL
      }
      bab1.append(b); // transfer the byte
    }
    if (bab1.length() == 0) {
      if (!mbBuf.hasRemaining()) {
        return null;
      }
      return "";
    }
    final byte[] out = bab1.toByteArray();
    final String s = new String(out, charset);
    return s;
  }