Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static class FileBufferedReader implements AutoCloseable {
- private char currentSymbol;
- private final InputStreamReader in;
- private static final byte EOF = -1;
- private static final char NEW_LINE = '\n';
- private static final char APOSTROPHE = '\'';
- FileBufferedReader(String fileName) throws IOException {
- in = new InputStreamReader(new FileInputStream(fileName), "utf-8");
- }
- private void readNextChar() throws IOException {
- currentSymbol = (char) in.read();
- }
- boolean hasNext() throws IOException {
- readNextChar();
- return (byte) currentSymbol != EOF;
- }
- boolean thisLine() {
- return currentSymbol != NEW_LINE
- && (byte) currentSymbol != EOF;
- }
- String nextWord() throws IOException {
- StringBuilder currentWord = new StringBuilder();
- while (!isPunctuation(currentSymbol)) {
- readNextChar();
- if (!thisLine()) {
- break;
- }
- }
- while (isPunctuation(currentSymbol)) {
- currentWord.append(currentSymbol);
- readNextChar();
- }
- return currentWord.toString().toLowerCase();
- }
- private boolean isPunctuation(char symbol) {
- return Character.isLetter(symbol) || Character.getType(symbol) == Character.DASH_PUNCTUATION
- || symbol == APOSTROPHE;
- }
- public void close() {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement