版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第第16講講 I/O一)一) 16.1 File類類 16.2 文件過濾器文件過濾器 16.3 流流 16.4 字節(jié)流和緩沖字節(jié)流字節(jié)流和緩沖字節(jié)流 16.5 字符流和緩沖字節(jié)流字符流和緩沖字節(jié)流 16.6 本講小結(jié)本講小結(jié) Java提供了豐富的類以實(shí)現(xiàn)與文件、控制臺、網(wǎng)絡(luò)等進(jìn)行通信,而通信的方式可以按字節(jié)或字符的方式進(jìn)行,可以是順序讀取數(shù)據(jù),也可以是隨機(jī)讀取數(shù)據(jù)。16.1 File類類 File類的對象既可以表示文件,也表示目錄。我們可以在相對路徑下創(chuàng)建文件或目錄,也可以在絕度路徑下創(chuàng)建文件或路徑。在創(chuàng)建文件或路徑時,要特別注意路徑中文件的分隔符,不同的操作系統(tǒng)中,文件分隔符是不同?!?”是
2、UNIX下的分隔符,而Windows下為“”,為了使程序具有良好的移植性,最好使用File.separator。16.2 文件過濾器文件過濾器 我們還可以做一個文件過濾器,只列出符合條件的文件。下面代碼列出當(dāng)前目錄下所有的.txt文件: public class FileFilter String suffix; public void showFiles(String path,String suffix) this.suffix = suffix; File file = new File(path); String name = file.list(new MyFileFilter();
3、 for(int i = 0;i name.length;i+) System.out.println(namei); class MyFileFilter implements FilenameFilter public boolean accept(File dir,String name) return name.endsWith(suffix); 16.3 流流 Java使用流的方式讀寫硬盤、內(nèi)存、鍵盤等設(shè)備上的數(shù)據(jù)。按照流的方向,可以分為輸入流和輸出流。按照要處理的數(shù)據(jù)類型,可以分為字節(jié)流和字符流。 java.io包中。所有輸入流類是InputStream和Reader的子類,所有輸
4、出流類都是OutputStream和Writer的子類。其中InputStream和OutputStream表示字節(jié)流,Reader和Writer表示字符流。16.4 字節(jié)流和緩沖字節(jié)流字節(jié)流和緩沖字節(jié)流 字節(jié)流可以處理所有類型的數(shù)據(jù),視頻、音頻、圖片、文本等,讀取時按照字節(jié)讀取,讀到一個字節(jié)就返回一個字節(jié)。/字節(jié)流處理讀寫文本文件的示例import java.io.*;public class RWByStreamOne public static void main(String args) try FileInputStream fis = new FileInputStream(tes
5、t.txt); FileOutputStream fos = new FileOutputStream(test_new.txt); byte b = new byte10;int a = 0;while(a = fis.read(b)!=-1) fos.write(b, 0, a); fos.flush();fos.close();fis.close(); catch (IOException e) e.printStackTrace();/緩沖字節(jié)流讀取視頻文件的示例import java.io.*;public class RWByBufferedStream public static
6、 void main(String args) try FileInputStream fis = new FileInputStream(a.mp4); /內(nèi)存的大小是經(jīng)驗(yàn)值,可以通過多次運(yùn)行程序而定BufferedInputStream bis = new BufferedInputStream(fis,1024*100);FileOutputStream fos = new FileOutputStream(a_new.mp4);BufferedOutputStream bos = new BufferedOutputStream(fos,1024*100);byte b = new b
7、yte100;int a = 0;long start = System.currentTimeMillis();while(a = bis.read(b)!=-1)bos.write(b, 0, a);bos.flush();bos.close();fos.close();bis.close();fis.close();long stop = System.currentTimeMillis();System.out.println(所用時間:+(stop-start)+ms); catch (IOException e) e.printStackTrace();16.5 字符流和緩沖字符流
8、字符流和緩沖字符流 字符流只能處理純文本數(shù)據(jù),讀取時,讀取一個或多個字符,然后查找指定的編碼表,將查到的字符返回。public class RWByReaderAndWriter public static void main(String args) tryFileReader fis = new FileReader(test.txt);FileWriter fos = new FileWriter(test_new.txt);char b = new char10;int a = 0;while(a = fis.read(b)!=-1)fos.write(b, 0, a);fos.flu
9、sh();fos.close();fis.close(); catch (IOException e) e.printStackTrace();緩沖字符流可以提高字符流的讀取效率,示例代碼如下:public class RWByBufferedChar public static void main(String args) try FileReader fis = new FileReader(test.txt);BufferedReader br = new BufferedReader(fis);FileWriter fos = new FileWriter(test_new.txt);
10、BufferedWriter bw = new BufferedWriter(fos);String s;while(s = br.readLine()!=null) bw.write(s+n); bw.flush();bw.close();fos.close(); br.close();fis.close(); catch (IOException e) e.printStackTrace(); Java還提供了一個高效輸出字符串的類:PrintWriter。示例代碼如下:import java.io.*;public class RByPrintWriter public static v
11、oid main(String args) tryFileReader fis = new FileReader(test.txt);BufferedReader br = new BufferedReader(fis);PrintWriter pw = new PrintWriter(test_new.txt);String s;while(s = br.readLine()!=null)pw.println(s);pw.flush();pw.close();br.close();fis.close(); catch (IOException e) e.printStackTrace();16.6 本講小結(jié)本講小結(jié) 本講
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度漁船租賃與漁業(yè)政策研究服務(wù)合同4篇
- 2025年度租賃房屋租賃合同稅費(fèi)繳納指南4篇
- 2025年文化創(chuàng)意產(chǎn)業(yè)合伙人合作協(xié)議書模板3篇
- 2025年度專業(yè)賽車場車手雇傭合同3篇
- 2025年物產(chǎn)中大金屬集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 《廉政風(fēng)險防控培訓(xùn)課件》
- 2025年貴州遵義金控集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 二零二五年度米面油食品安全風(fēng)險評估與監(jiān)控合同4篇
- 2025年消防給排水系統(tǒng)管網(wǎng)優(yōu)化設(shè)計(jì)施工合同2篇
- 2025年度重型工業(yè)門采購安裝合同范本4篇
- 中國華能集團(tuán)公司風(fēng)力發(fā)電場運(yùn)行導(dǎo)則(馬晉輝20231.1.13)
- 中考語文非連續(xù)性文本閱讀10篇專項(xiàng)練習(xí)及答案
- 2022-2023學(xué)年度六年級數(shù)學(xué)(上冊)寒假作業(yè)【每日一練】
- 法人不承擔(dān)責(zé)任協(xié)議書(3篇)
- 電工工具報(bào)價單
- 反歧視程序文件
- 油氣藏類型、典型的相圖特征和識別實(shí)例
- 流體靜力學(xué)課件
- 顧客忠誠度論文
- 實(shí)驗(yàn)室安全檢查自查表
- 證券公司績效考核管理辦法
評論
0/150
提交評論