Read N Characters Given Read4 II - Call multiple times

public class Solution extends Reader4 {
    private char[] tmpBuf = new char[4];
    private boolean endOfFile = false;
    private int offset = 0;
    private int remaining = 0;

    public int read(char[] buf, int n) {
        int currIndex = 0;
        while ((!endOfFile || remaining > 0) && n > currIndex) {
            int readChars = 0;
            if (remaining != 0) {
                readChars = remaining;
            } else {
                offset = 0;
                readChars = read4(tmpBuf);

                if (readChars != 4) {
                    endOfFile = true;
                }
            }

            int length = Math.min(n - currIndex, readChars);
            for (int i = offset; i < offset + length; ++i) {
                buf[currIndex++] = tmpBuf[i];
            }

            remaining = readChars - length;
            if (remaining != 0) {
                offset += length;
            }
        }

        return currIndex;
    }
}

results matching ""

    No results matching ""