亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? csv.java

?? 非常棒的java數據庫
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:

    private void pushBack(int ch) {
        back = ch;
    }

    private int readChar() throws IOException {
        int ch = back;
        if (ch != -1) {
            back = -1;
            return ch;
        } else if (endOfFile) {
            return -1;
        }
        ch = reader.read();
        if (ch < 0) {
            endOfFile = true;
            close();
        }
        return ch;
    }

    private String readValue() throws IOException {
        endOfLine = false;
        String value = null;
        outer:
        while (true) {
            int ch = readChar();
            if (ch < 0 || ch == '\r' || ch == '\n') {
                endOfLine = true;
                break;
            } else if (ch <= ' ') {
                // ignore spaces
                continue;
            } else if (ch == fieldSeparatorRead) {
                // null
                break;
            } else if (ch == fieldDelimiter) {
                // delimited value
                StringBuffer buff = new StringBuffer();
                boolean containsEscape = false;
                while (true) {
                    ch = readChar();
                    if (ch < 0) {
                        value = buff.toString();
                        break outer;
                    } else if (ch == fieldDelimiter) {
                        ch = readChar();
                        if (ch == fieldDelimiter) {
                            buff.append((char) ch);
                        } else {
                            pushBack(ch);
                            break;
                        }
                    } else if (ch == escapeCharacter) {
                        buff.append((char) ch);
                        ch = readChar();
                        if (ch < 0) {
                            break;
                        }
                        containsEscape = true;
                        buff.append((char) ch);
                    } else {
                        buff.append((char) ch);
                    }
                }
                value = buff.toString();
                if (containsEscape) {
                    value = unEscape(value);
                }
                while (true) {
                    ch = readChar();
                    if (ch < 0) {
                        break;
                    } else if (ch == ' ' || ch == '\t') {
                        // ignore
                    } else if (ch == fieldSeparatorRead) {
                        break;
                    } else if (ch == '\r' || ch == '\n') {
                        pushBack(ch);
                        endOfLine = true;
                        break;
                    } else {
                        pushBack(ch);
                        break;
                    }
                }
                break;
            } else if (ch == commentLineStart) {
                // comment until end of line
                while (true) {
                    ch = readChar();
                    if (ch < 0 || ch == '\r' || ch == '\n') {
                        break;
                    }
                }
                endOfLine = true;
                break;
            } else {
                // un-delimited value
                StringBuffer buff = new StringBuffer();
                buff.append((char) ch);
                while (true) {
                    ch = readChar();
                    if (ch == fieldSeparatorRead) {
                        break;
                    } else if (ch == '\r' || ch == '\n') {
                        pushBack(ch);
                        endOfLine = true;
                        break;
                    } else if (ch < 0) {
                        break;
                    }
                    buff.append((char) ch);
                }
                // check un-delimited value for nullString
                value = readNull(buff.toString().trim());
                break;
            }
        }
        // save memory
        return StringCache.get(value);
    }

    private String readNull(String s) {
        return s.equals(nullString) ? null : s;
    }

    private String unEscape(String s) {
        StringBuffer buff = new StringBuffer(s.length());
        int start = 0;
        char[] chars = null;
        while (true) {
            int idx = s.indexOf(escapeCharacter, start);
            if (idx < 0) {
                break;
            }
            if (chars == null) {
                chars = s.toCharArray();
            }
            buff.append(chars, start, idx - start);
            if (idx == s.length() - 1) {
                start = s.length();
                break;
            }
            buff.append(chars[idx + 1]);
            start = idx + 2;
        }
        buff.append(s.substring(start));
        return buff.toString();
    }

    /**
     * INTERNAL
     */
    public Object[] readRow() throws SQLException {
        if (reader == null) {
            return null;
        }
        String[] row = new String[columnNames.length];
        try {
            for (int i = 0;; i++) {
                String v = readValue();
                if (v == null) {
                    if (endOfFile && i == 0) {
                        return null;
                    }
                    if (endOfLine) {
                        if (i == 0) {
                            // empty line
                            i--;
                            continue;
                        }
                        break;
                    }
                }
                if (i < row.length) {
                    row[i] = v;
                }
            }
        } catch (IOException e) {
            throw convertException("IOException reading from " + fileName, e);
        }
        return row;
    }

    private SQLException convertException(String message, Exception e) {
        SQLException s = new SQLException(message, "CSV");
//#ifdef JDK14
        s.initCause(e);
//#endif
        return s;
    }

    /**
     * INTERNAL
     */
    public void close() {
        IOUtils.closeSilently(reader);
        reader = null;
        IOUtils.closeSilently(writer);
        writer = null;
    }

    /**
     * INTERNAL
     */
    public void reset() throws SQLException {
        throw new SQLException("Method is not supported", "CSV");
    }

    /**
     * Override the field separator for writing. The default is ",".
     *
     * @param fieldSeparatorWrite the field separator
     */
    public void setFieldSeparatorWrite(String fieldSeparatorWrite) {
        this.fieldSeparatorWrite = fieldSeparatorWrite;
    }

    /**
     * Get the current field separator for writing.
     *
     * @return the field separator
     */
    public String getFieldSeparatorWrite() {
        return fieldSeparatorWrite;
    }

    /**
     * Override the field separator for reading. The default is ','.
     *
     * @param fieldSeparatorRead the field separator
     */
    public void setFieldSeparatorRead(char fieldSeparatorRead) {
        this.fieldSeparatorRead = fieldSeparatorRead;
    }

    /**
     * Get the current field separator for reading.
     *
     * @return the field separator
     */
    public char getFieldSeparatorRead() {
        return fieldSeparatorRead;
    }

    /**
     * Get the current row separator for writing.
     *
     * @return the row separator
     */
    public String getRowSeparatorWrite() {
        return rowSeparatorWrite;
    }

    /**
     * Override the end-of-row marker for writing. The default is null. After
     * writing the end-of-row marker, a line feed is written (\n or \r\n
     * depending on the system settings).
     * 
     * @param rowSeparatorWrite the row separator
     */
    public void setRowSeparatorWrite(String rowSeparatorWrite) {
        this.rowSeparatorWrite = rowSeparatorWrite;
    }

    /**
     * Set the field delimiter. The default is " (a double quote).
     * 0 means no field delimiter is used.
     *
     * @param fieldDelimiter the field delimiter
     */
    public void setFieldDelimiter(char fieldDelimiter) {
        this.fieldDelimiter = fieldDelimiter;
    }

    /**
     * Get the current field delimiter.
     * 0 means no field delimiter is used.
     *
     * @return the field delimiter
     */
    public char getFieldDelimiter() {
        return fieldDelimiter;
    }

    /**
     * Set the escape character (used to escape the field delimiter). The
     * default is " (a double quote). 0 means no escape character is used.
     * 
     * @param escapeCharacter the escape character
     */
    public void setEscapeCharacter(char escapeCharacter) {
        this.escapeCharacter = escapeCharacter;
    }

    /**
     * Get the current escape character.
     * 0 means no escape character is used.
     *
     * @return the escape character
     */
    public char getEscapeCharacter() {
        return escapeCharacter;
    }

    /**
     * Set the line separator.
     *
     * @param lineSeparator the line separator
     */
    public void setLineSeparator(String lineSeparator) {
        this.lineSeparator = lineSeparator;
    }

    /**
     * Set the value that represents NULL.
     *
     * @param nullString the null
     */
    public void setNullString(String nullString) {
        this.nullString = nullString;
    }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美欧美欧美欧美| 久久综合色一综合色88| 91精品国产乱码久久蜜臀| 国产色产综合色产在线视频| 亚洲免费在线播放| 精品无人码麻豆乱码1区2区 | 久久久精品中文字幕麻豆发布| 国产精品久久久久久亚洲毛片 | 久久99国产精品麻豆| 一本到一区二区三区| 久久综合99re88久久爱| 亚洲午夜国产一区99re久久| www.亚洲在线| 久久亚洲综合色一区二区三区| 亚洲精品第1页| 国产69精品久久久久777| 91精品欧美久久久久久动漫| 国产精品久久777777| 国产久卡久卡久卡久卡视频精品| 国产午夜三级一区二区三| 日韩欧美国产三级| 亚洲视频中文字幕| 国产精品一区专区| 884aa四虎影成人精品一区| 亚洲日穴在线视频| 处破女av一区二区| 精品剧情在线观看| 麻豆一区二区在线| 欧美日韩国产影片| 亚洲精品第1页| 91麻豆蜜桃一区二区三区| 国产精品美女一区二区在线观看| 国产美女精品人人做人人爽 | 久久女同性恋中文字幕| 午夜av一区二区三区| 91香蕉视频mp4| 91超碰这里只有精品国产| 玉足女爽爽91| 91色.com| 中文欧美字幕免费| 国产成人三级在线观看| 国产午夜精品一区二区三区四区| 精品影院一区二区久久久| 精品欧美乱码久久久久久1区2区| 秋霞成人午夜伦在线观看| 欧美一区二区日韩| 国产在线精品一区二区夜色| 欧美tickle裸体挠脚心vk| 国产一区免费电影| 国产精品天天看| 99久久精品国产导航| 亚洲裸体xxx| 欧美午夜精品理论片a级按摩| 亚洲狠狠爱一区二区三区| 欧美日韩精品久久久| 日韩成人一级片| 欧美变态凌虐bdsm| 成人久久视频在线观看| 亚洲精品第1页| 6080国产精品一区二区| 国产综合久久久久久久久久久久| 国产日韩三级在线| 色老汉一区二区三区| 午夜精品福利一区二区三区av| 欧美变态tickling挠脚心| 国产精品1024久久| 亚洲精品国产精品乱码不99| 欧美人伦禁忌dvd放荡欲情| 久久国产生活片100| 国产精品卡一卡二| 欧美精三区欧美精三区| 国产一区二区三区综合| 亚洲精品视频自拍| 日韩你懂的在线观看| 成人黄色国产精品网站大全在线免费观看 | 日本美女一区二区三区视频| 久久嫩草精品久久久精品一| 91蜜桃免费观看视频| 日韩av中文字幕一区二区三区| 久久精品日产第一区二区三区高清版 | 精品无人区卡一卡二卡三乱码免费卡| 久久久久亚洲蜜桃| 欧洲色大大久久| 久久成人免费电影| 一区二区三区在线视频免费观看| 欧美一区二区三区视频免费播放| 国产成a人无v码亚洲福利| 亚洲一区二区三区四区在线 | 久久精品欧美日韩| 欧美日韩国产123区| 成人综合婷婷国产精品久久| 日韩精彩视频在线观看| 亚洲天堂久久久久久久| 欧美成人福利视频| 欧美日韩精品是欧美日韩精品| 国产成人久久精品77777最新版本| 午夜影院久久久| 1区2区3区精品视频| 久久久青草青青国产亚洲免观| 欧美日本高清视频在线观看| 99精品国产热久久91蜜凸| 国产不卡在线一区| 精品一区二区国语对白| 丝袜美腿高跟呻吟高潮一区| 亚洲免费电影在线| 国产精品久久久久久久久免费桃花 | 亚洲人成人一区二区在线观看| 精品国产一区二区三区久久久蜜月| 在线免费观看日本欧美| 成人性生交大合| 国模冰冰炮一区二区| 日本一不卡视频| 日韩av电影免费观看高清完整版| 亚洲一区视频在线| 亚洲一区二区三区四区在线观看| 中文字幕一区二区三区在线不卡| 久久久精品综合| 亚洲欧美另类久久久精品| 国产精品午夜久久| 国产欧美va欧美不卡在线| 久久噜噜亚洲综合| 久久欧美中文字幕| 国产拍欧美日韩视频二区| 国产欧美一区二区精品婷婷| 国产午夜三级一区二区三| 中文字幕欧美国产| ㊣最新国产の精品bt伙计久久| 中文字幕的久久| 亚洲欧美韩国综合色| 亚洲免费成人av| 亚洲一区在线看| 欧美a一区二区| 国内精品国产成人国产三级粉色| 国产乱码精品一区二区三| 国产在线视频一区二区| 成人夜色视频网站在线观看| www.亚洲在线| 欧美日韩一区二区三区在线| 日韩西西人体444www| 久久婷婷色综合| 中文字幕在线不卡国产视频| 一区二区三区色| 日本亚洲一区二区| 精品一区二区三区影院在线午夜 | 日韩一区二区三区在线视频| 日韩午夜精品电影| 欧美激情一二三区| 亚洲已满18点击进入久久| 日韩高清欧美激情| 国产福利一区在线观看| 91亚洲精华国产精华精华液| 欧美日韩高清一区| 2017欧美狠狠色| 亚洲人快播电影网| 老司机精品视频在线| 99视频一区二区| 欧美一区日韩一区| 国产精品每日更新在线播放网址| 亚洲欧美成aⅴ人在线观看| 日韩二区三区四区| youjizz久久| 日韩欧美一级精品久久| 最新国产精品久久精品| 免费观看一级特黄欧美大片| 国产成人av电影| 88在线观看91蜜桃国自产| 国产精品久久久久久亚洲伦| 日韩精品一二三| 99久久久免费精品国产一区二区| 91精品在线免费| 亚洲欧洲中文日韩久久av乱码| 美女精品自拍一二三四| 91麻豆国产香蕉久久精品| 久久综合久久鬼色中文字| 亚洲第一激情av| 99在线精品免费| 久久美女艺术照精彩视频福利播放 | 午夜亚洲国产au精品一区二区| 国产黄色精品视频| 日韩三级视频在线观看| 一区二区三区四区激情| 国产成人自拍网| 欧美一区二区三区免费在线看 | 黄色资源网久久资源365| 欧美在线影院一区二区| 国产精品美女久久久久久久久久久 | 国产麻豆视频一区二区| 欧美久久久影院| 亚洲五码中文字幕| 色综合久久久久综合体桃花网| 国产亚洲短视频| 国产一区二区三区美女| 欧美一区二区三区免费在线看| 亚洲国产精品久久久久秋霞影院 | 久久夜色精品国产噜噜av| 视频一区二区国产| 欧美午夜不卡视频| 一区二区三区日本| 色综合夜色一区| 综合中文字幕亚洲|