⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 prtokeniser.java

📁 一个java操作pdf文件的开发包,很好用的.
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                    ch = file.read();                    if (ch == -1 || isDelimiter(ch) || isWhitespace(ch))                        break;                    if (ch == '#') {                        ch = (getHex(file.read()) << 4) + getHex(file.read());                    }                    outBuf.append((char)ch);                }                backOnePosition();                break;            }            case '>':                ch = file.read();                if (ch != '>')                    throwError("'>' not expected");                type = TK_END_DIC;                break;            case '<':            {                int v1 = file.read();                if (v1 == '<') {                    type = TK_START_DIC;                    break;                }                outBuf = new StringBuffer();                type = TK_STRING;                int v2 = 0;                while (true) {                    while (isWhitespace(v1))                        v1 = file.read();                    if (v1 == '>')                        break;                    v1 = getHex(v1);                    if (v1 < 0)                        break;                    v2 = file.read();                    while (isWhitespace(v2))                        v2 = file.read();                    if (v2 == '>') {                        ch = v1 << 4;                        outBuf.append((char)ch);                        break;                    }                    v2 = getHex(v2);                    if (v2 < 0)                        break;                    ch = (v1 << 4) + v2;                    outBuf.append((char)ch);                    v1 = file.read();                }                if (v1 < 0 || v2 < 0)                    throwError("Error reading string");                break;            }            case '%':                type = TK_COMMENT;                do {                    ch = file.read();                } while (ch != -1 && ch != '\r' && ch != '\n');                break;            case '(':            {                outBuf = new StringBuffer();                type = TK_STRING;                int nesting = 0;                while (true) {                    ch = file.read();                    if (ch == -1)                        break;                    if (ch == '(') {                        ++nesting;                    }                    else if (ch == ')') {                        --nesting;                    }                    else if (ch == '\\') {                        boolean lineBreak = false;                        ch = file.read();                        switch (ch) {                            case 'n':                                ch = '\n';                                break;                            case 'r':                                ch = '\r';                                break;                            case 't':                                ch = '\t';                                break;                            case 'b':                                ch = '\b';                                break;                            case 'f':                                ch = '\f';                                break;                            case '(':                            case ')':                            case '\\':                                break;                            case '\r':                                lineBreak = true;                                ch = file.read();                                if (ch != '\n')                                    backOnePosition();                                break;                            case '\n':                                lineBreak = true;                                break;                            default:                            {                                if (ch < '0' || ch > '7') {                                    break;                                }                                int octal = ch - '0';                                ch = file.read();                                if (ch < '0' || ch > '7') {                                    ch = octal;                                    backOnePosition();                                    break;                                }                                octal = (octal << 3) + ch - '0';                                ch = file.read();                                if (ch < '0' || ch > '7') {                                    ch = octal;                                    backOnePosition();                                    break;                                }                                octal = (octal << 3) + ch - '0';                                ch = octal & 0xff;                                break;                            }                        }                        if (lineBreak)                            continue;                        if (ch < 0)                            break;                    }                    else if (ch == '\r') {                        ch = file.read();                        if (ch < 0)                            break;                        if (ch != '\n') {                            ch = '\n';                            backOnePosition();                        }                    }                    if (nesting == -1)                        break;                    outBuf.append((char)ch);                }                if (ch == -1)                    throwError("Error reading string");                break;            }            default:            {                outBuf = new StringBuffer();                if (ch == '-' || ch == '+' || ch == '.' || (ch >= '0' && ch <= '9')) {                    type = TK_NUMBER;                    do {                        outBuf.append((char)ch);                        ch = file.read();                    } while (ch != -1 && ((ch >= '0' && ch <= '9') || ch == '.'));                }                else {                    type = TK_OTHER;                    do {                        outBuf.append((char)ch);                        ch = file.read();                    } while (ch != -1 && !isDelimiter(ch) && !isWhitespace(ch));                }                backOnePosition();                break;            }        }        if (outBuf != null)            stringValue = outBuf.toString();        return true;    }        public int intValue() {        return Integer.valueOf(stringValue).intValue();    }        public boolean readLineSegment(byte input[]) throws IOException {        int c = -1;        boolean eol = false;        int ptr = 0;        int len = input.length;        while (!eol && ptr < len) {            switch (c = read()) {                case -1:                case '\n':                    eol = true;                    break;                case '\r':                    eol = true;                    int cur = getFilePointer();                    if ((read()) != '\n') {                        seek(cur);                    }                    break;                default:                    input[ptr++] = (byte)c;                    break;            }        }        if (ptr >= len) {            eol = false;            while (!eol) {                switch (c = read()) {                    case -1:                    case '\n':                        eol = true;                        break;                    case '\r':                        eol = true;                        int cur = getFilePointer();                        if ((read()) != '\n') {                            seek(cur);                        }                        break;                }            }        }                if ((c == -1) && (ptr == 0)) {            return false;        }        if (ptr + 2 <= len) {            input[ptr++] = ' ';            input[ptr] = 'X';        }        return true;    }        public static int[] checkObjectStart(byte line[]) {        try {            PRTokeniser tk = new PRTokeniser(line);            int num = 0;            int gen = 0;            if (!tk.nextToken() || tk.getTokenType() != TK_NUMBER)                return null;            num = tk.intValue();            if (!tk.nextToken() || tk.getTokenType() != TK_NUMBER)                return null;            gen = tk.intValue();            if (!tk.nextToken())                return null;            if (!tk.getStringValue().equals("obj"))                return null;            return new int[]{num, gen};        }        catch (Exception ioe) {            // empty on purpose        }        return null;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -