Refine search
private Map<String, Object> buildStringKeyMap(ByteBuffer input) { int payloadSize = input.remaining(); if (chars == null || chars.remaining() < payloadSize) { chars = CharBuffer.allocate(payloadSize); } final CoderResult coderResult = charset.newDecoder() .onMalformedInput(CodingErrorAction.REPLACE) .onUnmappableCharacter(CodingErrorAction.REPLACE) .decode(input, chars, true); Map<String, Object> theMap; if (coderResult.isUnderflow()) { chars.flip(); try { theMap = parseString(chars.toString()); } finally { chars.clear(); } } else { throw new ParseException("Failed with CoderResult[%s]", coderResult); } return theMap; }
public CharBuffer decodeUnsafely(byte[] byteS, int start, int len) { // Prepare buffers if (byteBuffer.capacity() < len) { byteBuffer = ByteBuffer.allocate(len * 2); } byteBuffer.clear(); byteBuffer.put(byteS, start, len); byteBuffer.flip(); int maxChars = (int) (byteBuffer.capacity() * decoder.maxCharsPerByte()); if (charBuffer.capacity() < maxChars) { charBuffer = CharBuffer.allocate(maxChars); } charBuffer.clear(); // Decode UTF-8 decoder.reset(); decoder.decode(byteBuffer, charBuffer, true); decoder.flush(charBuffer); charBuffer.flip(); return charBuffer; } }
protected void dispatchReader(WebSocket webSocket, Reader r) throws IOException { int read = 0; CharBuffer cb = webSocket.cb; try { while (read > -1) { cb.position(cb.position() + read); if (cb.remaining() == 0) { cb = resizeCharBuffer(webSocket); } read = r.read(cb.array(), cb.position(), cb.remaining()); } cb.flip(); invokeWebSocketProtocol(webSocket, cb.toString()); } finally { cb.clear(); } }
@Override public String getSinkContents() throws IOException { File file = getFile(); Reader reader = new InputStreamReader(new FileInputStream(file), Charsets.UTF_8); StringBuilder builder = new StringBuilder(); CharBuffer buffer = CharBuffer.allocate(100); while (reader.read(buffer) != -1) { buffer.flip(); builder.append(buffer); buffer.clear(); } return builder.toString(); } }
@Override public String read() throws IOException { CharBuffer response = CharBuffer.allocate(bufferSize); StringBuilder result = new StringBuilder(); do { response.clear(); reader.read(response); result.append(response.array(), response.arrayOffset(), response.position()); } while (response.get(response.position() - 1) != '\n'); return result.toString(); }
public CharBuffer decodeUnsafely(byte[] byteS, int start, int len) { // Prepare buffers if (byteBuffer.capacity() < len) { byteBuffer = ByteBuffer.allocate(len * 2); } byteBuffer.clear(); byteBuffer.put(byteS, start, len); byteBuffer.flip(); int maxChars = (int) (byteBuffer.capacity() * decoder.maxCharsPerByte()); if (charBuffer.capacity() < maxChars) { charBuffer = CharBuffer.allocate(maxChars); } charBuffer.clear(); // Decode UTF-8 decoder.reset(); decoder.decode(byteBuffer, charBuffer, true); decoder.flush(charBuffer); charBuffer.flip(); return charBuffer; } }
private void advance() throws IOException { assert !endOfInput; assert !bbuf.hasRemaining() : "advance() should be called when output byte buffer is empty. bbuf: " + bbuf + ", as string: " + bbuf.asCharBuffer().toString(); assert cbuf.remaining() < 2; // given that bbuf.capacity = 3 x cbuf.capacity, the only time that we should have a // remaining char is if the last char read was the 1st half of a surrogate pair if (cbuf.remaining() == 0) { cbuf.clear(); } else { cbuf.compact(); } int n = reader.read(cbuf); // read #1 cbuf.flip(); CoderResult result; endOfInput = n == -1; bbuf.clear(); result = encoder.encode(cbuf, bbuf, endOfInput); checkEncodeResult(result); if (endOfInput) { result = encoder.flush(bbuf); checkEncodeResult(result); } bbuf.flip(); }