<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 262,  comments - 221,  trackbacks - 0
    J2SE
    【Java基礎專題】IO與文件讀寫---優(yōu)化搜索程序(01)      摘要: Apache commons CLI是一個開源的,用于處理命令行的工具包。這個包目前的穩(wěn)定版本是1.2,他非常簡單只有20個左右的class,但提供了幾乎所以可以用到的命令行功能。它的主頁在這里:Apache commons CLI

    根據(jù)CLI的邏輯,每一個命令行的處理都可以分為3個步驟:定義、解析、交互
    ①定義:定義命令行的各種選項屬性(包括縮寫、全寫、是否必須、是否帶參數(shù)、參數(shù)個數(shù)限制)
    ②解析:使用解析器對命令行選項列表進行解析
    ③交互:從解析好的命令行查詢用戶輸入的參數(shù)值并進行處理  閱讀全文
    posted @ 2010-04-02 14:20 Paul Lin 閱讀(1073) | 評論 (0)  編輯
    【Java基礎專題】IO與文件讀寫---DirectoryWalker和FileFilter的復雜條件使用      摘要: 1.基本功能過濾器
    =============================================
    ①類型:DirectoryFileFilter、FileFileFilter
    ②大小:EmptyFileFilter、SizeFileFilter
    ③時間:AgeFileFilter
    ④名稱:NameFileFilter、PrefixFileFilter、SuffixFileFilter、RegexFileFilter、WildcardFileFilter
    ⑤讀寫屬性:CanReadFileFilter、CanWriteFileFilter
    ⑥隱藏屬性:HiddenFileFilter

    2.邏輯關系過濾器
    =============================================
    ①邏輯與:AndFileFilter
    ②邏輯或:OrFileFilter
    ③邏輯非:NotFileFilter
    ④永真/假:TrueFileFilter、FalseFil  閱讀全文
    posted @ 2010-04-01 17:52 Paul Lin 閱讀(3169) | 評論 (1)  編輯
    【Java基礎專題】IO與文件讀寫---使用DirectoryWalker和FileFilterUtils進行搜索      摘要: Apache commons IO包中提供了一個可以遍歷目錄下資源的DirectoryWalker,還有很多的IOFileFilter用于過濾文件目錄。下面的例子分別演示了這個功能。

    這兩個搜索類都是以內(nèi)部類的方式嵌入客戶端的,客戶端接收客戶的參數(shù),然后通過一個后臺線程來進行搜索,等待子線程完成搜索后(join方法),再打印搜索結(jié)果。

    注意這個過程是可以被cancel的。cancel主要有2種情況。外部cancel:外部線程通過調(diào)用內(nèi)部類的cancel()方法。內(nèi)部cancel:在handleDirectory、handleFile中主動拋出CancelException。

    walk方法在每次執(zhí)行前、后都會檢查當前是否有cancel指令發(fā)出(checkIfCancelled ---> handleIsCancelled),如果有那么默認立刻拋出CancelException,然后調(diào)用handleCancelled方法。  閱讀全文
    posted @ 2010-03-31 23:45 Paul Lin 閱讀(2572) | 評論 (1)  編輯
    【Java基礎專題】IO與文件讀寫---對同步/異步和阻塞/非阻塞的理解      摘要: ①同步的操作,如果在等待的過程不能做別的事情,它是同步+阻塞的。這個也是最常見的
    ②同步的操作,如果在等待的過程可以做別的事情,它是同步+非阻塞的。
    ③異步的操作,如果在等待的過程不能做別的事情,它是異步+阻塞的。
    ④異步的操作,如果在等待的過程可以做別的事情,它是異步+非阻塞的。這個也是最常見的  閱讀全文
    posted @ 2010-03-10 15:36 Paul Lin 閱讀(2792) | 評論 (2)  編輯
    【Java基礎專題】IO與文件讀寫---同步/異步與阻塞/非阻塞的區(qū)別(轉(zhuǎn))      摘要: 同步/異步:消息通知機制。是自己主動關注消息還是靠別人通知
    阻塞/非阻塞:消息處理機制。等待消息處理完成的過程能否做別的事情  閱讀全文
    posted @ 2010-03-10 14:54 Paul Lin 閱讀(2638) | 評論 (0)  編輯
    【Java基礎專題】IO與文件讀寫---使用Apache commons IO包進行資源遍歷      摘要: 要使用DirectoryWalker來遍歷一個目錄并進行相應的操作,步驟如下:

    ①創(chuàng)建一個繼續(xù)于DirectoryWalker的類,并在構(gòu)造方法中調(diào)用super();
    ②定義一個業(yè)務入口方法,例如clean。在這個方法中調(diào)用walk方法
    ③覆蓋DirectoryWalker類的handleDirectory方法,提供相應的處理邏輯
    ④覆蓋DirectoryWalker類的handleFile方法,提供相應的處理邏輯  閱讀全文
    posted @ 2010-03-09 00:26 Paul Lin 閱讀(3531) | 評論 (1)  編輯
    【Java基礎專題】IO與文件讀寫---使用Apache commons IO過濾文件和目錄      摘要: 它們可以分為兩大類:
    ①實質(zhì)性過濾器:例如針對文件的類型,屬性,名稱,大小進行過濾的過濾器
    ②過濾器連接器:典型的包括AndFileFilter、OrFileFilter。用于邏輯連接多個過濾器  閱讀全文
    posted @ 2010-03-09 00:02 Paul Lin 閱讀(1358) | 評論 (0)  編輯
    【Java基礎專題】IO與文件讀寫---使用Apache commons IO簡化文件讀寫      摘要: FileUtils總體上來說,主要功能有:
    ※ 資源的創(chuàng)建、刪除
    ※ 資源的復制、移動
    ※ 資源的讀寫
    ※ 資源的比較
    ※ 資源的過濾
    ※ 資源的轉(zhuǎn)換  閱讀全文
    posted @ 2010-03-08 15:07 Paul Lin 閱讀(6584) | 評論 (1)  編輯
    【Java基礎專題】IO與文件讀寫---使用Apache commons IO包規(guī)范文件名      摘要: 使用Apache commons IO包規(guī)范文件名  閱讀全文
    posted @ 2010-03-08 10:56 Paul Lin 閱讀(855) | 評論 (0)  編輯
    【Java基礎專題】IO與文件讀寫---使用Apache commons io包提高讀寫效率      摘要: 本文通過對Apache commons io包的input,output子類的源代碼研究,來揭示為什么使用commons IO包會在性能上由于JDK自帶的IO類。

    特別是輸出流方面  閱讀全文
    posted @ 2010-03-04 10:28 Paul Lin 閱讀(5653) | 評論 (0)  編輯
    【Java基礎專題】IO與文件讀寫---Java的IO流架構(gòu)      摘要: 使用圖例全面展示Java中IO的架構(gòu),特別是節(jié)點流和過濾流及其之間的轉(zhuǎn)換  閱讀全文
    posted @ 2010-03-02 09:47 Paul Lin 閱讀(4331) | 評論 (3)  編輯
    【Java基礎專題】編碼與亂碼(08)---JavaEE防止中文亂碼的設置      摘要: 良好的編程習慣,對編碼和數(shù)據(jù)傳輸流程的清晰認識,規(guī)范的配置是確保JavaEE應用不會出現(xiàn)亂碼的三大法寶  閱讀全文
    posted @ 2010-02-24 10:25 Paul Lin 閱讀(4331) | 評論 (1)  編輯
    【Java基礎專題】編碼與亂碼(07)---native2ascii命令的用法      摘要: 可以看到該命令對于英文字符,數(shù)字不會轉(zhuǎn)換而是直接輸出,而對于每個中文字符則轉(zhuǎn)換成以\u開頭的4個16進制數(shù)字。

    通常情況下,如果要進行字符的逆轉(zhuǎn)換,-encoding encoding_name這個參數(shù)都會配合-reverse出現(xiàn)。在上面的例子中因為本地系統(tǒng)是中文操作系統(tǒng),所以即便沒有指定-encoding也可以正確地從unicode ---》GBK。如果是在英文平臺下由于默認字符集是ISO-8859-1,那么這個時候如果不指定則轉(zhuǎn)換出來的將是?了。  閱讀全文
    posted @ 2010-02-23 18:41 Paul Lin 閱讀(885) | 評論 (0)  編輯
    【Java基礎專題】編碼與亂碼(06)---字符的各種值轉(zhuǎn)換      摘要: 可以看到在Java中,字符的unicode有兩種表示顯示:一種是10進制形式,一種是16進制形式。它們可以分別通過:int i = (int)(string.charAt(i))和Integer.toHexString(i);獲得。而且在java文件和Web頁面,同一個unicode的表示形式是不同。web頁面需要用&#進行轉(zhuǎn)義,在java文件中則使用\u進行轉(zhuǎn)義。  閱讀全文
    posted @ 2010-02-23 16:48 Paul Lin 閱讀(2126) | 評論 (2)  編輯
    【Java基礎專題】編碼與亂碼(05)---GBK與UTF-8之間的轉(zhuǎn)換      摘要: 在這個專題的第一篇文章【Java基礎專題】編碼與亂碼(01)---編碼基礎 開頭,我們就已經(jīng)介紹了這個規(guī)則:
    ①得到每個字符的2進制GBK編碼
    ②將該16進制的GBK編碼轉(zhuǎn)換成2進制的字符串(2個字節(jié))
    ③分別在字符串的首位插入110,在第9位插入10,在第17位插入10三個字符串,得到3個字節(jié)
    ④將這3個字節(jié)分別轉(zhuǎn)換成16進制編碼,得到最終的UTF-8編碼。  閱讀全文
    posted @ 2010-02-22 23:00 Paul Lin 閱讀(37031) | 評論 (11)  編輯
    【Java基礎專題】編碼與亂碼(04)---輸出時的編碼與亂碼      摘要: 謹慎地使用getBytes(NAME_OF_CHARSET)和new String(bytes, NAME_OF_CHARSET),除非你很清楚的知道原始的字符編碼和傳輸協(xié)議使用的編碼。

    推薦使用基于服務器的配置、過濾器設置request/response的characterEncoding、content type屬性。還有就是JSP頁面的pageEncoding屬性、HTML meta元素的content type屬性。盡量避免頻繁的在代碼中進行字符串轉(zhuǎn)碼,即降低了效率又增加了風險  閱讀全文
    posted @ 2010-02-22 17:39 Paul Lin 閱讀(3042) | 評論 (4)  編輯
    【Java基礎專題】編碼與亂碼(03)----String的toCharArray()方法      摘要: 這個方法再次證明了String的getBytes()方法的危險性,如果我們使用new String(str.getBytes(), encoding)對字符串進行重新編碼解碼時,我們一定要清楚str.getBytes()方法返回的字節(jié)數(shù)組的長度、內(nèi)容到底是什么,因為在接下來使用新的encoding進行編碼解碼時,Java并不會自動地對字節(jié)數(shù)組進行擴展以適應新的encoding。而是按照新的編碼方法直接對該字節(jié)數(shù)組進行解析。

    于是結(jié)果就像上面的例子一樣,同樣是4個原始字節(jié),有些每2個一組進行解析,有些每個一組進行解析,有些每3個一組進行解析。其結(jié)果就只能看那種編碼方式合適了。  閱讀全文
    posted @ 2010-02-22 17:18 Paul Lin 閱讀(7103) | 評論 (2)  編輯
    【Java基礎專題】編碼與亂碼(02)---String的getBytes([encoding])方法      摘要: 不要輕易地使用或濫用String類的getBytes(encoding)方法,更要盡量避免使用getBytes()方法。因為這個方法是平臺依賴的,在平臺不可預知的情況下完全可能得到不同的結(jié)果。如果一定要進行字節(jié)編碼,則用戶要確保encoding的方法就是當初字符串輸入時的encoding。  閱讀全文
    posted @ 2010-02-22 16:53 Paul Lin 閱讀(4601) | 評論 (1)  編輯
    【Java基礎專題】編碼與亂碼(01)---編碼基礎      摘要: Unicode到UTF-8的轉(zhuǎn)換:Unicode的16進制編碼<-->對應的2進制編碼<-->UTF-8規(guī)范的2進制編碼<-->UTF-8規(guī)范的16進制編碼

    也就是說,假如我們需要從磁盤文件、數(shù)據(jù)庫記錄、網(wǎng)絡傳輸一些字符,保存到Java的變量中,要經(jīng)歷由bytes-->encode字符-->Unicode字符的轉(zhuǎn)換(例如new String(bytes, encode));而要把Java變量保存到文件、數(shù)據(jù)庫或者通過網(wǎng)絡傳輸,系統(tǒng)要做一個Unicode字符-->encode字符-->bytes的轉(zhuǎn)換(例如String.getBytes([encode]))  閱讀全文
    posted @ 2010-02-16 23:23 Paul Lin 閱讀(3682) | 評論 (3)  編輯
    【原】RSS工具開發(fā)手記(14)---Informa的exporters包      摘要: Informa不僅提供了對不同版本的RSS Feed source的讀入和解析,同樣也提供了將channel object導出為不同協(xié)議版本的XML文件的功能。這個功能是通過exporters包下的各個導出類來完成的。目前僅支持對RSS協(xié)議的導出,不支持Atom協(xié)議、OPML協(xié)議的導出。  閱讀全文
    posted @ 2010-01-04 10:15 Paul Lin 閱讀(406) | 評論 (0)  編輯
    【原】RSS工具開發(fā)手記(13)---Informa的parsers包      摘要: OPML(Outline Processor Markup Language)協(xié)議正是用于解決這樣問題的。利用OPML協(xié)議,我們可以通過閱讀器把已經(jīng)訂閱的頻道導出為OPML協(xié)議規(guī)定的格式,從而作為
    一個文件分享出去。  閱讀全文
    posted @ 2010-01-02 20:56 Paul Lin 閱讀(345) | 評論 (0)  編輯
    【原】RSS工具開發(fā)手記(12)---Informa的parsers包      摘要: 可以看到,對于這個解析過程,一般的步驟就是:
    A.獲取channnel下的某個子節(jié)點元素
    B.如果該子節(jié)點元素有子元素或?qū)傩裕瑒t繼續(xù)遞歸訪問
    C.調(diào)用該channnel子元素的createXxx方法加載或創(chuàng)建該子元素
    D.調(diào)用Channel的setXxx方法添加該子元素到channel實例中  閱讀全文
    posted @ 2009-12-30 10:45 Paul Lin 閱讀(252) | 評論 (0)  編輯
    【原】RSS工具開發(fā)手記(11)---Informa的parse包      摘要: FeedParser是一個facade類,這個類的工作就是根據(jù)讀入的RSS Feed的協(xié)議系和版本“委托(delegate)”給已經(jīng)硬編碼的規(guī)則(concrete rules)指定的解析器,而且這些解析器是私有的。這意味著:用戶不能直接調(diào)用一個RSS_0_91_Parser類的實例來進行解析工作。  閱讀全文
    posted @ 2009-12-29 15:56 Paul Lin 閱讀(1488) | 評論 (0)  編輯
    【原】RSS工具開發(fā)手記(10)---Informa的impl.hibernate包      摘要: ChannelBuilder對channel object的創(chuàng)建原則就是:
    A.如果能夠從持久層中找到對應的記錄,那么從持久層返回
    B.如果找不到,則創(chuàng)建它并持久化它,然后返回該對象(已持久化)

    只要記得的一點就是:從ChannelBuilder返回的對象都是已經(jīng)持久化的。  閱讀全文
    posted @ 2009-12-28 15:57 Paul Lin 閱讀(1240) | 評論 (0)  編輯
    【原】RSS工具開發(fā)手記(07)---Informa的impl.basic包      摘要: 這個ID生成類采用了系統(tǒng)當前時間作為隨即數(shù)產(chǎn)生的種子,這個并不難理解。但是有一個地方需要我們注意的就是關鍵字transient的使用。這個關鍵的作用是告訴編譯器假設該類的對象被序列化了,這個值不需要被保存。因為它是“瞬時”的。  閱讀全文
    posted @ 2009-12-23 00:03 Paul Lin 閱讀(1338) | 評論 (0)  編輯
    【原】RSS工具開發(fā)手記(05)---Informa的impl.basic包      摘要: 總結(jié)起來,channel的創(chuàng)建,更新過程如下:
    ①接收經(jīng)過ChannelParser解析后的XML Element元素,和其他一系列屬性,調(diào)用構(gòu)造方法
    ②構(gòu)造方法為channel生成一個全局唯一ID
    ③構(gòu)造方法創(chuàng)建item列表,觀察者列表,設置好分類(Category),首次更新時間
    ④如果有新item到來,則添加到item列表,同時更新item的channel歸屬
    ⑤如果現(xiàn)有channel更新,則設置最新更新時間
    ⑥通知每一個已注冊的觀察者有事件發(fā)生  閱讀全文
    posted @ 2009-12-22 23:31 Paul Lin 閱讀(1257) | 評論 (0)  編輯
    【原】RSS工具開發(fā)手記(04)---Informa的core包      摘要: Informa的core包介紹如下:

    “This package contains interfaces for the news channel objects, it builds the core API for all news channel storage implementation. ”

    從上面這句話來看,core包里面定義的都是關于“news channel objects”的接口---實際上就是RSS協(xié)議中的channel和item元素。經(jīng)過一個多小時查看源代碼和閱讀API,發(fā)現(xiàn)Informa對core包的設計有如下特點:

    core包中的元素被分為標記接口、實體接口、行為接口  閱讀全文
    posted @ 2009-12-21 22:09 Paul Lin 閱讀(1246) | 評論 (0)  編輯
    【原】RSS工具開發(fā)手記(03)---初始Informa      摘要: Informa的API結(jié)構(gòu)如下:

    ★core包:
    核心包。訂閱了RSS中channel,item等一系列元素和元數(shù)據(jù)的接口

    ★impl.basic包:
    基本功能包。使用in-memory模式實現(xiàn)了core包訂閱的接口

    ★impl.hibernate包:
    基于hibernate實現(xiàn)的包,使用關系型數(shù)據(jù)庫模式實現(xiàn)了core包定義的接口

    ★parsers包:
    定義了永遠解析channel,item的解析器工具

    ★exporters包:
    定義了一組把channel,item導出成各種協(xié)議格式的工具

    ★search包:
    定義了用于全文搜索channel,item的工具

    ★utils.manager.memory包:
    定義了一組用于管理“in-memory”模式持久化的工具

    ★utils.manager.hibernate包:   閱讀全文
    posted @ 2009-12-21 15:39 Paul Lin 閱讀(1259) | 評論 (0)  編輯
    【原】RSS工具開發(fā)手記(02)---工欲善其事,必先利其器      摘要: 選擇一個開源框架,我的標準有幾條:

    ★良好的文檔和源代碼管理:這是最基本的一條,想RSSLibJ這種連文檔、官網(wǎng)都沒有的一律pass掉
    ★持續(xù)的改進:這是第二個重要的,像上面某些工具從02年后就不再更新了,出了問題你找誰訴苦去
    ★簡單和易上手:在短時間內(nèi)可以迅速依樣畫葫蘆
    ★活躍的社區(qū):參與的人越多軟件成長得越多。我不是特別在乎軟件目前的使用率,因為好的軟件都是慢慢出名的  閱讀全文
    posted @ 2009-12-21 11:52 Paul Lin 閱讀(1362) | 評論 (0)  編輯
    【原】Java 多線程 之 ThreadLocal      摘要: ThreadLocal作用解析及代碼實例  閱讀全文
    posted @ 2008-09-05 17:10 Paul Lin 閱讀(4752) | 評論 (1)  編輯
    【原】Java Reflection 之 Array      摘要: Java反射之Array  閱讀全文
    posted @ 2008-09-04 15:13 Paul Lin 閱讀(1143) | 評論 (0)  編輯
    【原】Java Reflection 之 Filed      摘要: Java反射之Filed  閱讀全文
    posted @ 2008-09-04 15:02 Paul Lin 閱讀(405) | 評論 (0)  編輯
    【原】Java Reflection 之 Method      摘要: Java反射之Method  閱讀全文
    posted @ 2008-09-03 16:05 Paul Lin 閱讀(1827) | 評論 (0)  編輯
    【原】Java Reflection 之 Class      摘要: Java反射之Class  閱讀全文
    posted @ 2008-09-03 14:36 Paul Lin 閱讀(347) | 評論 (0)  編輯
    【原】多線程編程的基礎知識點      摘要: 【一】進程、線程、并發(fā)執(zhí)行
    【二】JVM與多線程
    【三】Java語言對多線程的支持
    【四】線程的狀態(tài)切換
    【五】Java中線程的調(diào)度API
    【六】參考文章  閱讀全文
    posted @ 2008-09-02 10:50 Paul Lin 閱讀(3908) | 評論 (3)  編輯
    【半轉(zhuǎn)載】一個不錯的多線程Socket服務器簡單例子      摘要: 多線程池化Socket服務器  閱讀全文
    posted @ 2008-08-16 23:08 Paul Lin 閱讀(7264) | 評論 (0)  編輯
    【轉(zhuǎn)】Dom4j中自帶的教程      摘要: 來自Dom4j中的cookbook  閱讀全文
    posted @ 2008-01-30 17:13 Paul Lin 閱讀(2247) | 評論 (0)  編輯

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(21)

    隨筆分類

    隨筆檔案

    BlogJava熱點博客

    好友博客

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 黄色毛片免费在线观看| 午夜精品射精入后重之免费观看 | 免费看www视频| 一级做a爱片特黄在线观看免费看| 亚洲国产另类久久久精品黑人| 91久久精品国产免费一区| 亚洲精品无码不卡在线播放| 亚洲色偷偷狠狠综合网| h视频在线观看免费完整版| 免费人成动漫在线播放r18| 亚洲AV无码不卡在线播放| 夜夜嘿视频免费看| 免费成人在线视频观看| 亚洲日韩一区精品射精| 国产亚洲精品资源在线26u| 好男人视频在线观看免费看片| 花蝴蝶免费视频在线观看高清版| 亚洲AV男人的天堂在线观看| 亚洲精品二区国产综合野狼| 午夜免费福利在线| 日本一卡精品视频免费| 成年免费大片黄在线观看com| 91午夜精品亚洲一区二区三区| 国产亚洲精品免费视频播放| 99久久这里只精品国产免费| 久久国产乱子精品免费女| 亚洲av永久无码精品秋霞电影秋 | 成人精品视频99在线观看免费| 亚洲人成网站看在线播放| 久久综合图区亚洲综合图区| 免费日本黄色网址| 成人免费无码大片a毛片| 久久九九AV免费精品| 未满十八私人高清免费影院| 亚洲性线免费观看视频成熟| 亚洲国产精品久久久久网站| 亚洲中文字幕伊人久久无码| 国产又黄又爽又猛的免费视频播放| 国产黄色免费网站| 99视频免费观看| 免费在线看黄网站|