![《Java程序設(shè)計及應(yīng)用》課件07-1_第1頁](http://file4.renrendoc.com/view10/M02/0D/00/wKhkGWV7ZZGAOPgNAABtuLqBi68237.jpg)
![《Java程序設(shè)計及應(yīng)用》課件07-1_第2頁](http://file4.renrendoc.com/view10/M02/0D/00/wKhkGWV7ZZGAOPgNAABtuLqBi682372.jpg)
![《Java程序設(shè)計及應(yīng)用》課件07-1_第3頁](http://file4.renrendoc.com/view10/M02/0D/00/wKhkGWV7ZZGAOPgNAABtuLqBi682373.jpg)
![《Java程序設(shè)計及應(yīng)用》課件07-1_第4頁](http://file4.renrendoc.com/view10/M02/0D/00/wKhkGWV7ZZGAOPgNAABtuLqBi682374.jpg)
![《Java程序設(shè)計及應(yīng)用》課件07-1_第5頁](http://file4.renrendoc.com/view10/M02/0D/00/wKhkGWV7ZZGAOPgNAABtuLqBi682375.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
內(nèi)容提要I/O概述字符集編碼File、RandomAccessFile類I/O概述I/O指的是一個程序與其外界之間的接口。Java提供了三套機制來處理I/O操作。第一套機制采用java.io.File和java.io.RandomAccessFile類,前者用于處理文件或目錄(文件夾),后者用于隨機訪問文件的內(nèi)容。第二套機制采用流(stream)來描述。第三套采用新的I/O機制(稱為NIO,其中的N就是new的首字母),是在JDK1.4中新引入的,在性能上有了大幅提高,彌補了原來I/O的不足。NIO的目的是為了讓Java程序員可以實現(xiàn)高速I/O而無需編寫自定義的本機代碼。字符與編碼基本概念字符字符集編碼字符集字符編碼字符集編碼的歷史漢字編碼字符集編碼的Java編程基本概念字符,就是文字符號,例如英文字母、漢字、標點、阿拉伯數(shù)字、數(shù)學(xué)符號等,而不管字符的表現(xiàn)形式如何(例如斜體、顏色、字體、點陣形式、矢量形式等)。字符集,就是字符的集合,這個集合與數(shù)學(xué)中的集合是一個概念,即集合中的元素是互異的、無序的。編碼字符集,就是把字符集中每個字符賦予一個整數(shù)數(shù)字,在字符和數(shù)字之間建立了一一對應(yīng)關(guān)系,這樣的字符集就稱為編碼字符集。字符編碼(也稱為編碼、字符編碼方案),就是怎樣把編碼字符集的數(shù)字映射為字節(jié)序列。字符編碼方案分為定長編碼和變長編碼兩種。定長編碼有ASCII、GB2312、GBK、UTF-32等,定長編碼較簡單,變長編碼常見的有UTF-8,這種編碼對常用字符使用較少的字節(jié),對生僻字符使用較多的字節(jié)來表示,這種編碼實現(xiàn)起來要復(fù)雜些字符集1.數(shù)字化2.字符編碼編碼字符集字節(jié)序列字符集編碼的歷史1.ASCII編碼階段2.ANSI本地化編碼3.通用字符集階段多字節(jié)標志位0:否,1:是1的個數(shù)表示:后續(xù)的字節(jié)個數(shù)10表示:是后續(xù)字節(jié)而非首字節(jié)x表示UCS編碼Unicode字符范圍 UTF-8字節(jié)序列(16進制)00000000-0000007F: 0xxxxxxx00000080-000007FF: 110xxxxx 10xxxxxx00000800–0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx00010000–001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx00200000–03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx04000000–7FFFFFFF:1111110x 10xxxxxx10xxxxxx10xxxxxx10xxxxxx 10xxxxxxJava使用UTF-16表示內(nèi)部文本(JVM內(nèi)的文本),并支持用于字符串串行化的非標準的修正UTF-8編碼。漢字編碼我國的第一個漢字編碼是1980制定的GB23121995年中國大陸發(fā)布了《漢字內(nèi)碼擴展規(guī)范》,簡稱GBK2000年發(fā)布的GB18030是取代GBK的正式國家標準。GB18030作為Unicode3.0的GBK擴展版本,覆蓋了所有Unicode編碼,地位等同于UTF-8,UTF-16,是一種Unicode編碼形式。字符集編碼的Java處理在Java中,字符串采用Unicode編碼,每個字符占用兩個字節(jié)(即采用UTF-16編碼),字符對應(yīng)的類型為char,與編碼有關(guān)的兩個主要方法在類String中,如下:(1)publicbyte[]getBytes(StringcharsetName)throwsUnsupportedEncodingException將字符串用指定的編碼解析成字節(jié)數(shù)組,完成從charsetName到Unicode的轉(zhuǎn)換。注意該方法有重載方法。(2)publicString(byte[]bytes,StringcharsetName)throwsUnsupportedEncodingException//String的構(gòu)造方法。該方法將字節(jié)數(shù)組以指定的編碼標準構(gòu)造成字符串,完成從Unicode到charsetName的轉(zhuǎn)換。借助上面這兩個方法,我們就可以在任意的兩個字符編碼之間進行轉(zhuǎn)換了。歸根到底,字符編碼的轉(zhuǎn)換就是字符與字節(jié)之間的轉(zhuǎn)換。例程Java內(nèi)部(即正在執(zhí)行的程序或者JVM)采用UTF-16編碼,當字符從Java內(nèi)部被移到外部(文件、數(shù)據(jù)庫、網(wǎng)絡(luò)等)或者從外部移到Java內(nèi)部的時候,就進行了編碼轉(zhuǎn)換。因此可以說,所有的編碼轉(zhuǎn)換就只發(fā)生在Java和OS(操作系統(tǒng))的交界處,因此Java在輸入輸出流中提供了字符集處理機制。Java源代碼也是字符,javac命令有一個參數(shù)-encoding,其含義是指定待編譯的Java源代碼文件所采用的字符集編碼。若Java源代碼文件的編碼采用的不是操作系統(tǒng)默認的編碼(中文Windows為GBK,Linux為UTF-8),則編譯時必須使用參數(shù)-encoding指定正確的字符編碼,編譯命令如下:javac-encodingencodeNameyourfile.javaFile類File類提供了很多方法用于操作磁盤文件,可以對文件修改訪問權(quán)限、刪除文件、修改文件名、獲取文件的路徑等。File類對象就是一個在內(nèi)存中的類實例對象,用以描述一個文件或目錄(文件夾)。讀者在使用File類時,有以下注意事項:(1)File對象實例描述了一個文件或目錄,從這點說File對象和其他普通類對象一樣,其創(chuàng)建與銷毀只是在內(nèi)存中創(chuàng)建或銷毀了一個對象,不會影響其描述的磁盤文件。(2)文件路徑分隔符,Windows采用\,UNIX(Linux)采用/。文件路徑在程序中是一個字符串,注意到Java采用\作為轉(zhuǎn)義符,故用“\\”表示W(wǎng)indows文件分隔符。實際上,不管對哪一種操作系統(tǒng),Java都可以使用/作為文件路徑分隔符,這對Java程序的跨平臺帶來了方便,因此建議使用/作為文件分隔符就好了。例程RandomAccessFile類RandomAccessFile類用于隨機訪問一個文件的內(nèi)容,這與I/O流不同,I/O流讀取或?qū)懭胍粋€文件是順序操作的。所謂隨機訪問是指可以隨機在一個文件中進行定位并訪問,RandomAccessFile提供了方法用于定位(seeking)、讀(reading)和寫(writing)操作。定位方法longgetFilePointer()throwsIOException,返回游標指向的當前位置。longlength()throwsIOException,返回文件的長度,單位
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年血液透析機(人工腎)合作協(xié)議書
- 2025年基因工程乙型肝炎疫苗(酵母)合作協(xié)議書
- 2024-2025學(xué)年河南省鄭州市管城區(qū)四年級(上)期末數(shù)學(xué)試卷
- 2025年排氣系統(tǒng)管件合作協(xié)議書
- 人教版期中測試卷-四年級數(shù)學(xué)下冊(培優(yōu)卷)(含解析)
- 2025年九年級教研組年終總結(jié)樣本(3篇)
- 2025年乳膠漆粉刷施工合同協(xié)議(2篇)
- 2025年產(chǎn)品買賣合同范文(2篇)
- 2025年二手房分期購房合同(三篇)
- 2025年個人車位租賃合同參考模板(三篇)
- YS/T 34.1-2011高純砷化學(xué)分析方法電感耦合等離子體質(zhì)譜法(ICP-MS)測定高純砷中雜質(zhì)含量
- LY/T 2016-2012陸生野生動物廊道設(shè)計技術(shù)規(guī)程
- 松下panasonic-視覺說明書pv200培訓(xùn)
- 單縣煙草專賣局QC課題多維度降低行政處罰文書出錯率
- 健康養(yǎng)生課件
- 混雜控制系統(tǒng)課件
- 運動技能學(xué)習(xí)原理課件
- 《QHSE體系培訓(xùn)》課件
- 公共關(guān)系學(xué)完整教學(xué)課件
- 原子物理學(xué)第五章-多電子原子:泡利原理
- 35kV輸電線路工程旋挖鉆孔專項施工方案
評論
0/150
提交評論