@DataProvider(name = "buffers") public Object[][] createBuffers() { // test both on-heap and off-heap buffers as they make use different code paths returnnew Object[][]{ new Object[]{CharBuffer.allocate(BUFFER_SIZE)}, new Object[]{ByteBuffer.allocateDirect(BUFFER_SIZE * 2).asCharBuffer()}
};
}
StringBuilder input = new StringBuilder(BUFFER_SIZE - 2 + 1);
input.append("ABCDEF"); for (int i = 0; i < 8192; i++) {
input.append('y');
}
input.append("GH");
try (Reader reader = new UnoptimizedStringReader(input.toString())) { // put only between position and limit in the target buffer int limit = 1 + 6;
buffer.limit(limit);
buffer.position(1);
assertEquals(reader.read(buffer), 6);
assertEquals(buffer.position(), limit);
assertEquals(buffer.limit(), limit);
// read the full temporary buffer // and then accurately reduce the next #read call
limit = 8 + 8192 + 1;
buffer.limit(8 + 8192 + 1);
buffer.position(8);
assertEquals(reader.read(buffer), 8192 + 1);
assertEquals(buffer.position(), limit);
assertEquals(buffer.limit(), limit);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.