Dominik Stadler created IO-855:
----------------------------------
Summary: Clarify behavior of PeekableInputStream.peek() in JavaDoc
Key: IO-855
URL: https://issues.apache.org/jira/browse/IO-855
Project: Commons IO
Issue Type: Improvement
Components: Streams/Writers
Affects Versions: 2.15.1
Reporter: Dominik Stadler
The current JavaDoc of the PeekableInputStream states {*}"Returns whether the
next bytes in the buffer are as given by sourceBuffer."{*}. When trying to
using it I expected the following to work:
PeekableInputStream stream = {color:#cc7832}new {color}PeekableInputStream(
{color:#cc7832}new {color}ByteArrayInputStream({color:#6a8759}"Some text
buffer"{color}.getBytes(StandardCharsets.{color:#9876aa}UTF_8{color}))){color:#cc7832};
{color}{color:#cc7832}
{color}assertTrue(stream.peek({color:#6a8759}"Some"{color}.getBytes(StandardCharsets.{color:#9876aa}UTF_8{color}))){color:#cc7832};
{color}
However this fails because the current implementation checks if the available
bytes on the stream *exactly* match the bytes in the stream, so if there is
more data available, it will return false!
If this is the intended behavior, it should be made more prominent in the
JavaDoc.
P.S.: I am not sure how useful such an implementation is as at least for me
most such use-cases are of type "startsWith", not "equals".
--
This message was sent by Atlassian Jira
(v8.20.10#820010)