public interface WordReader extends Serializable
The intended implementations of this interface should decorate
a given reader (see, for instance, FastBufferedReader
).
The reader can be changed at any time using setReader(Reader)
.
This interface is heavily oriented towards reusability and streaming. It is conceived so that at most one method call has to be performed per word, rather than per character, and that implementations may completely avoid object creation by setting explicitly the underlying reader.
The standard implementation (FastBufferedReader
) breaks
words in the trivial way. More complex implementations (e.g., for languages requiring
segmentation) can subclass FastBufferedReader
or provide their
own implementation.
Modifier and Type | Method and Description |
---|---|
WordReader |
copy()
Returns a copy of this word reader.
|
boolean |
next(MutableString word,
MutableString nonWord)
Extracts the next word and non-word.
|
WordReader |
setReader(Reader reader)
Resets the internal state of this word reader, which will start again reading from the given reader.
|
boolean next(MutableString word, MutableString nonWord) throws IOException
If this method returns true, a new non-empty word, and possibly
a new non-word, have been extracted. It is acceptable
that the first call to this method after creation
or after a call to setReader(Reader)
returns an empty
word. In other words both word
and nonWord
are maximal.
word
- the next word returned by the underlying reader.nonWord
- the nonword following the next word returned by the underlying reader.word
and nonWord
are unchanged).IOException
WordReader setReader(Reader reader)
reader
- the new reader providing characters.WordReader copy()
This method must return a word reader with a behaviour that matches exactly that of this word reader.
Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.