Ⅰ 浪曦網的講師簡介
同濟大學軟體工程碩士,現就職於理光軟體研究所(Ricoh software research center)。曾在上海文華專修學院、北京達內教育科技有限公司、上海交大慧科南洋計算機教育中心、上海東軟對日外包學校、北京英泰移動通信有限公司等擔任培訓講師,為上海華騰軟體系統有限公司、浙江人本集團、西門子移動(上海)有限公司、貴州電力系統有限公司等多家單位做過企業培訓,同時擔任Sun Java認證考試(SL275、SL314等)培訓講師,具有豐富的IT培訓經驗,深受學員好評。
專注IT領域:文檔工作流,辦公自動化解決方案,項目管理、敏捷開發。
技術特長(Java方向):熟練掌握Java、J2EE體系架構,對J2EE常見開源框架有比較深入的研究,對J2EE標准有比較深刻的認識,擅長於Eclipse插件的開發。深入掌握web services的原理與開發並在項目中大量應用。
技術特長(.NET方向):熟練掌握.NET框架,有深入的研究,熟練掌握NHibernate、Spring等開源框架,對LINQ、Silverlight,WCF,WPF等有較為深刻的認識。熟練掌握J2EE與.NET互通信的原理與機制。
技術特長(WEB方向):熟練掌握JavaScript等腳本語言,對CSS有較為深入的掌握,熟練使用常見Ajax框架(Dojo,Extjs、DWR、GWT、Prototype等)。目前對Groovy,ROR,Flex等產生濃厚興趣。 湖南大學軟體工程專業研究生,用友公司前高級軟體設計師/資深項目經理,.Net軟體設計專家,從事軟體開發工作8年,項目管理工作5年,一直致力於企事業單位MIS系統及資料庫系統的應用,在電子商務系統、辦公OA系統、財務審計系統、酒店管理系統、全國統考及四六級系統等多個行業有大量實際項目管理、設計、開發經驗,在.NET序列語言(Vb、Net、C#、Asp、Net…)高級編程技術中具有深厚的理論功底和大量的實踐經驗。曾作為微軟特聘.NET高級講師從事微軟大客戶培訓工作。
技術特長(.NET方向):精通.Net技術在BS及CS結構中的應用,
技術特長(資料庫方向):精通SQLServer、Oracle、Db2、Sybase等大型資料庫的設計和編程。
Ⅱ 如何使用Java 輸出,輸出流讀寫數據
在「面向對象編程: J a v a c o l l e c t i o n 更有效管理 e l e m e n t s 」一文中,我們討論了 J a v a 集合類架構中的類和功能並介紹了它的排序功能。在本文中,我們將學習 J a v a 平台 提供的這些 I / O 類,介面和操作。讓我們先從了解 J a v a 數據流開始。數據流 J a v a 所有的 I / O 機制都是基於數據流的,這些數據流表示了字元或者位元組數據的流動序列。 J a v a 的 I / O 流提供了讀寫數據的標准方法。任何 J a v a 中表示數據源的對象都會提供以數據流的方式讀寫它的數據的方法。 J a v a . i o 是大多數面向數據流的輸入 / 輸出類的主要軟體包。這個軟體包包含了兩個抽象類, I n p u t S t r e a m 和 O u t p u t S t r e a m 。所有其它面象數據流的輸入 / 輸出類都要擴展這兩個基類。 j a v a . i o 軟體包提供了一些類和介面,它們在由 I n p u t S t r e a m 和 O u p u t S t r e a m 類提供的讀寫操作的頂端定義了一些有用的抽象。例如, O b j e c t I n p u t S t r e a m 類提供了讓你把輸入 / 輸出流中的數據當成對象來讀取的方法,而 O b j e c t O u t p u t S t r e a m 類提供了讓你能夠把 J a v a 對象寫入數據流中的方法。優化讀寫過程 J D K 1 . 1 增加了一套讀寫類,它們提供了比現有數據流類更有用的抽象和更好的輸入 / 輸出性能。例如, B u f f e r e d R e a d e r 和 B u f f e r e d W r i t e r 類被用來從基於字元的輸入和輸出流中讀取和寫入文本。 B u f f e r d R e a d e r 類緩存字元以更高效的讀取字元串,數組和文本行。 B u f f e r e d W r i t e r 類緩存字元以更高效的寫入字元串,數組和文本行。 B u f f e r e d R e a d e r 和 B u f f e r e d W r i t e r 類可以按需求進行設置。 浪曦網 - 國內頂級 I T 視頻網路編程教育平台 W w w . L a n g S i n . C o m 浪曦網 - 國內頂級 I T 視頻網路編程教育平台 W w w . L a n g S i n . C o m J a v a 輸入 / 輸出架構提供的讀取器和寫入器類包括 L i n e N u m b e r R e a d e r 類, C h a r A r r a y R e a d e r 類, F i l e R e a d e r 類, F i l t e r R e a d e r 類, P u s h b a c k R e a d e r 類, P i p e d R e a d e r 類, S t r i n g R e a d e r 類以及其它一些類。這些類是在 I n p u t S t r e a m 和 O u p u t S t r e a m 類頂部的包裹類因此提供了與 I n p u t S t r e a m 和 O u p u t S t r e a m 類相似的方法。但是,這些類為讀寫特定的對象,比方文件,字元數組和字元串等等提供了更高效而有用的抽象。讀取數據當你從一個相應的數據源對象里提取輸入流或者是創建一個讀取器對象的時候就會自動打開一個輸入流。例如,要為一個文件打開輸入流,我們只需要以下面的方式把文件名傳遞給 J a v a . i o . F i l e R e a d e r 對象的構造函數: j a v a . i o . F i l e R e a d e r f i l e R e a d e r = n e w j a v a . i o . F i l e R e a d e r ( " / h o m e / m e / m y f i l e . t x t " ) ; 要按順序讀取 F i l e R e a d e r 底層的輸入流中的一個位元組數據,只需要使用不帶參數的 r e a d 方法。表 A 中的代碼段從一個文件讀取文本數據,一次一個字元,然後把它寫入 S y s t e m . o u t 里。要從輸入流讀取指定數目的位元組數據到 c h a r 數組里,只需要使用帶一個 c h a r [ ] 參數的 r e a d 方法 。數組的長度被用來確定應該讀取的字元的個數。表 B 演示了這個技術。要關閉一個輸入流以及這個流使用的所有系統資源,你只需要以下面的方式調用 c l o s e 方法: f i l e R e a d e r . c l o s e ( ) ; 寫入數據象一個輸入流一樣,輸出流通常在你從相應的數據源提取它或者是在你創建一個寫入對象的時候被自動的打開。例如,要為一個文件打開輸出流,我們把文件的名字傳遞給 j a v a . i o . F i l e W r i t e r 對象的構造函數,如下所示: j a v a . i o . F i l e W r i t e r f i l e W r i t e r = n e w 浪曦網 - 國內頂級 I T 視頻網路編程教育平台 W w w . L a n g S i n . C o m 浪曦網 - 國內頂級 I T 視頻網路編程教育平台 W w w . L a n g S i n . C o m j a v a . i o . F i l e W r i t e r ( " / h o m e / m e / o u t . t x t " ) ; 要將一個特定的字元寫入到輸出流中,可以使用帶一個 i n t 參數的 w r i t e 方法, i n t 參數代表要定入的字元。 i n t a C h a r = ( i n t ) " X " ; f i l e W r i t e r . w r i t e ( a C h a r ) ; 要在輸出流給定的偏移地址寫入一個 c h a r 數組中特定數目的字元,你可以使用帶一個 c h a r [ ] 參數,一個 i n t 偏移量參數和一個 i n t 長度參數的 w r i t e 方法,如下面的例子所示: f i l e W r i t e r . w r i t e ( b u f f e r , 0 , b y t e C o u n t ) ; 要關閉一個輸出流並釋放所有與之相關的系統資源,可以使用 c l o s e 方法,就象這樣: f i l e W r i t e r . c l o s e ( ) ; 要強迫寫出一個輸出流中的所有數據,可以使用下面的 f l u s h 方法: f i l e W r i t e r . f l u s h ( ) ; 把它們全部綜合起來我們可以使用我們學習過的這些函數從一個文件中讀取數據並同時寫到另一個文件中去,如表 C 所示。 浪曦網 - 國內頂級 I T 視頻網路編程教育平台 W w w . L a n g S i n . C o m 浪曦網 - 國內頂級 I T 視頻網路編程教育平台 W w w . L a n g S i n . C o m 總結 J a v a 的輸入 / 輸出機制為從不同的數據源讀取和寫入字元增加了一套簡單而標准化的 A P I 。你對一種數據源使用 J a v a 流的經驗能夠讓你容易的使用其它由 J a v a 提供的數據源類型。在我們下一篇文章中,我們將會開始學習 J a v a 平台的聯網和遠程通訊架構。我們將會把我們對 J a v a 流的討論擴展到這些環境並演示如何打開遠程數據源,並象操作本地數據源,比方文件一樣,寫入數據和讀取數據 J a v a 輸入 / 輸出( I / O )機制提供了一套簡單的,標准化的 A P I 以便從不同的數據源讀取和寫入字元和位元組數據。在「面向對象編程: J a v a c o l l e c t i o n 更有效管理 e l e m e n t s 」一文中,我們討論了 J a v a 集合類架構中的類和功能並介紹了它的排序功能。在本文中,我們將學習 J a v a 平台提供的這些 I / O 類,介面和操作。讓我們先從了解 J a v a 數據流開始。數據流 J a v a 所有的 I / O 機制都是基於數據流的,這些數據流表示了字元或者位元組數據的流動序列。 J a v a 的 I / O 流提供了讀寫數據的標准方法。任何 J a v a 中表示數據源的對象都會提供以數據流的方式讀寫它的數據的方法。 J a v a . i o 是大多數面向數據流的輸入 / 輸出類的主要軟體包。這個軟體包包含了兩個抽象類, I n p u t S t r e a m 和 O u t p u t S t r e a m 。所有其它面象數據流的輸入 / 輸出類都要擴展這兩個基類。 j a v a . i o 軟體包提供了一些類和介面,它們在由 I n p u t S t r e a m 和 O u p u t S t r e a m 類提供的讀寫操作的頂端定義了一些有用的抽象。例如, O b j e c t I n p u t S t r e a m 類提供了讓你把輸入 / 輸出流中的數據當成對象來讀取的方法,而 O b j e c t O u t p u t S t r e a m 類提供了讓你能夠把 J a v a 對象寫入數據流中的方法。優化讀寫過程 J D K 1 . 1 增加了一套讀寫類,它們提供了比現有數據流類更有用的抽象和更好的輸入 / 輸出性能。例如, B u f f e r e d R e a d e r 和 B u f f e r e d W r i t e r 類被用來從基於字元的輸入和輸出流中讀取和寫入文本。 B u f f e r d R e a d e r 類緩存字元以更高效的讀取字元串,數組和文本行。 B u f f e r e d W r i t e r 類緩存字元以更高效的寫入字元串,數組和文本行。 B u f f e r e d R e a d e r 和 B u f f e r e d W r i t e r 類可以按需求進行設置。 J a v a 輸入 / 輸出架構提供的讀取器和寫入器類包括 L i n e N u m b e r R e a d e r 類, C h a r A r r a y R e a d e r 類, F i l e R e a d e r 類, F i l t e r R e a d e r 類, P u s h b a c k R e a d e r 類, P i p e d R e a d e r 類, S t r i n g R e a d e r 類以及其它一些類。這些類是在 I n p u t S t r e a m 和 O u p u t S t r e a m 類頂部的包裹類因此提供了與 I n p u t S t r e a m 和 O u p u t S t r e a m 類相似的方法。但是,這些類為讀寫特定的對象,比方文件,字元數組和字元串等等提供了更高效而有用的抽象。讀取數據當你從一個相應的數據源對象里提取輸入流或者是創建一個讀取器對象的時候就會自動打開一個輸入流。例如,要為一個文件打開輸入流,我們只需要以下面的方式把文件名傳遞給 J a v a . i o . F i l e R e a d e r 對象的構造函數: j a v a . i o . F i l e R e a d e r f i l e R e a d e r = n e w j a v a . i o . F i l e R e a d e r ( " / h o m e / m e / m y f i l e . t x t " ) ; 要按順序讀取 F i l e R e a d e r 底層的輸入流中的一個位元組數據,只需要使用不帶參數的 r e a d 方法。表 A 中的代碼段從一個文件讀取文本數據,一次一個字元,然後把它寫入 S y s t e m . o u t 里。要從輸入流讀取指定數目的位元組數據到 c h a r 數組里,只需要使用帶一個 c h a r [ ] 參數的 r e a d 方法。數組的長度被用來確定應該讀取的字元的個數。表 B 演示了這個技術。要關閉一個輸入流以及這個流使用的所有系統資源,你只需要以下面的方式調用 c l o s e 方法: f i l e R e a d e r . c l o s e ( ) ; 寫入 數據象一個輸入流一樣,輸出流通常在你從相應的數據源提取它或者是在你創建一個寫入對象的時候被自動的打開。例如,要為一個文件打開輸出流,我們把文件的名字傳遞給 j a v a . i o . F i l e W r i t e r 對象的構造函數,如下所示: j a v a . i o . F i l e W r i t e r f i l e W r i t e r = n e w j a v a . i o . F i l e W r i t e r ( " / h o m e / m e / o u t . t x t " ) ; 要將一個特定的字元寫入到輸出流中,可以使用帶一個 i n t 浪曦網 - 國內頂級 I T 視頻網路編程教育平台 W w w . L a n g S i n . C o m 浪曦網 - 國內頂級 I T 視頻網路編程教育平台 W w w . L a n g S i n . C o m 參數的 w r i t e 方法, i n t 參數代表要定入的字元。 i n t a C h a r = ( i n t ) " X " ; f i l e W r i t e r . w r i t e ( a C h a r ) ; 要在 輸出流給定的偏移地址寫入一個 c h a r 數組中特定數目的字元,你可以使用帶一個 c h a r [ ] 參數,一個 i n t 偏移量參數和一個 i n t 長度參數的 w r i t e 方法,如下面的例子所示: f i l e W r i t e r . w r i t e ( b u f f e r , 0 , b y t e C o u n t ) ; 要關閉一個輸出流並釋放所有與之相關的系統資源,可以使用 c l o s e 方法,就象這樣: f i l e W r i t e r . c l o s e ( ) ; 要強迫寫出一個輸出流中的所有數據,可以使用下面的 f l u s h 方法: f i l e W r i t e r . f l u s h ( ) ; 把它們全部綜合起來我們可以使用我們學習過的這些函數從一個文件中讀取數據並同時寫到另一個文件中去,如表 C 所示。總結 J a v a 的輸入 / 輸出機制為從不同的數據源讀取和寫入字元增加了一套簡單而標准化的 A P I 。你對一種數據源使用 J a v a 流的經驗能夠讓你容易的使用其它由 J a v a 提供的數據源類型。在我們下一篇文章中,我們將會開始學習 J a v a 平台 的聯網和遠程通訊架構。我們將會把我們對 J a v a 流的討論擴展到這些環境並演示如何打開遠程數據源,並象操作本地數據源,比方文件一樣,寫入數據和讀取數據