《Java程序設計任務式教程》課件 805 字節(jié)流(課件)_第1頁
《Java程序設計任務式教程》課件 805 字節(jié)流(課件)_第2頁
《Java程序設計任務式教程》課件 805 字節(jié)流(課件)_第3頁
《Java程序設計任務式教程》課件 805 字節(jié)流(課件)_第4頁
《Java程序設計任務式教程》課件 805 字節(jié)流(課件)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

字節(jié)流《Java程序設計》字節(jié)流的定義和使用1字節(jié)輸入流的定義和使用2字節(jié)輸出流的定義和使用3本講要討論的問題目錄CONCENT什么是面向對象?JAVA字節(jié)流是用于讀寫二進制數(shù)據(jù)的輸入/輸出流,它以字節(jié)為單位進行數(shù)據(jù)的讀取和寫入,可以讀取和寫入任意類型的文件,包括文本文件、圖像文件、音頻文件等,常見的文件操作有復制、移動、重命名等。什么是字節(jié)流?類的組成:InputStream(輸入流/讀取)字節(jié)流OutputStream(輸出流/寫入)FileInputStream(操作文件的輸入)BufferedInputStream(通過內(nèi)存緩沖提高流操作性能)FileOutputStream(操作文件的輸出)BufferedOutputStream(通過內(nèi)存緩沖提高流操作性能)使用步驟1.引入所需的類2.創(chuàng)建流對象3.讀/寫數(shù)據(jù)

4.關閉流使用字節(jié)流的一般步驟什么是面向對象?字節(jié)輸入流是Java中用于逐字節(jié)讀取數(shù)據(jù)的工具,常用的字節(jié)輸入流類有BufferedInputStream、FileInputStream等。FileInputStream類用于從文件中讀取字節(jié)數(shù)據(jù);BufferedInputStream類則提供了緩沖功能,可以高效地讀取字節(jié)數(shù)據(jù)。什么是字節(jié)輸入流,如何使用?字節(jié)輸入流的常用方法:方法功能描述intread()從輸入流中讀取一個字節(jié)的數(shù)據(jù),并返回該字節(jié)的整數(shù)表示intread(byte[]b)讀取最多b.length個字節(jié)的數(shù)據(jù),將其存儲到字節(jié)數(shù)組b中,并返回實際讀取的字節(jié)數(shù)intread(byte[]b,intoff,intlen)讀取最多l(xiāng)en個字節(jié)的數(shù)據(jù),將其存儲到字節(jié)數(shù)組b中,從off位置開始存儲,并返回實際讀取的字節(jié)數(shù)intavailable()返回輸入流中可讀的字節(jié)數(shù)voidclose()關閉輸入流使用步驟1.導入需要的包java.io.*2.創(chuàng)建輸入流對象如FileInputStream3.讀取數(shù)據(jù)使用read()

4.關閉流調(diào)用close()使用字節(jié)輸入流的一般步驟FileInputStream

fis

=

new

FileInputStream(“E:/f.txt”)fis.read();//從文件中讀取一個字節(jié)的數(shù)據(jù),如返回-1表示已經(jīng)到流的末尾,即文件已經(jīng)讀完fis.available();//輸入流中可讀的字節(jié)數(shù)fis.close();//關閉輸入流使用“對象.函數(shù)()”進行操作創(chuàng)建FileInputStream的步驟:FileInputStream

對象名=newFileInputStream(文件路徑);語法

注意:如使用了try-with-resources語句,則自動關閉資源,無需手動調(diào)用close()方法。BufferedInputStream

bis

=

new

BufferedInputStream(new

FileInputStream(“E:/f.txt”))bis.read();//一次性讀取較大塊的數(shù)據(jù)存入緩沖區(qū),后續(xù)的讀取直接從緩沖區(qū)獲取,減少系統(tǒng)調(diào)用次數(shù)bis.close();//關閉輸入流使用“對象.函數(shù)()”進行操作使用緩沖區(qū)創(chuàng)建的步驟:BufferedInputStream

對象名

=

new

BufferedInputStream(new

FileInputStream(文件路徑))語法

注意:如使用了try-with-resources語句,則自動關閉資源,無需手動調(diào)用close()方法。實例化

publicclassDemo8_7{ publicstaticvoidmain(String[]args){ System.out.println("—1.使用FileInputStream示例"); fileInputStreamDemo();//不使用緩沖區(qū) System.out.println("\n—2.使用BufferedInputStream示例"); bufferedInputStream();//使用緩沖區(qū) }}一、main()函數(shù)中的代碼二、要讀取的文件內(nèi)容三、讀取結果實例化一實例化

privatestaticvoidfileInputStreamDemo(){ StringfilePath="src/exception/file8_7.txt";//文件存放路徑 try(FileInputStreamfis=newFileInputStream(filePath)){ intdata; while((data=fis.read())!=-1){//讀取文件 System.out.print((char)data); } }catch(IOExceptione){ System.err.println("錯誤信息:"+e.getMessage()); } }一、fileInputStreamDemo()函數(shù)實現(xiàn)實例化二二、bufferedInputStream()函數(shù)實現(xiàn)privatestaticvoidbufferedInputStream(){ StringfilePath="src/exception/file8_7.txt";//文件存放路徑 try(BufferedInputStreambis=newBufferedInputStream(newFileInputStream(filePath))){ intdata; while((data=bis.read())!=-1){ System.out.print((char)data); } }catch(IOExceptione){ System.err.println("錯誤信息:"+e.getMessage()); } }什么是面向對象?字節(jié)輸出流是JavaI/O系統(tǒng)中的一種流,用于將數(shù)據(jù)以字節(jié)(8位二進制)的形式從內(nèi)存輸出到外部目標,例如文件、網(wǎng)絡、或者其他輸出設備。它是數(shù)據(jù)輸出的基礎流,主要用于處理二進制數(shù)據(jù)(如圖片、視頻、音頻)和文本數(shù)據(jù)。什么是字節(jié)輸出流,如何使用?字節(jié)輸出流的常用方法:方法功能描述voidwrite(byte[]b)字節(jié)數(shù)組b中的數(shù)據(jù)寫入到輸出流voidwrite(byte[]b,intoff,intlen)將字節(jié)數(shù)組b中從偏移量off開始的len個字節(jié)寫入到輸出流voidwrite(intb)將指定的字節(jié)寫入輸出流voidflush()刷新輸出流,將緩沖區(qū)中的數(shù)據(jù)強制寫出voidclose()關閉輸出流,釋放相關的資源使用步驟1.導入需要的包java.io.*2.創(chuàng)建輸出流對象如FileOutputStream3.寫入數(shù)據(jù)使用write()

4.關閉流調(diào)用close()使用字節(jié)輸出流的一般步驟FileOutputStream

fos

=

new

FileOutputStream(“/f.txt”)fos.write(data);//將data字節(jié)數(shù)據(jù)寫入流fos.close();//關閉輸出流使用“對象.函數(shù)()”進行操作創(chuàng)建FileOutputStream的步驟:FileOutputStream

對象名=newFileOutputStream(文件路徑);語法

注意:如使用了try-with-resources語句,則自動關閉資源,無需手動調(diào)用close()方法。BufferedOutputStreambos=newBufferedOutputStream(newFileOutputStream(“f.txt”))bos.write(data);//寫入緩沖區(qū)bos.flush();//刷新緩沖區(qū)fos.close();//關閉輸出流使用“對象.函數(shù)()”進行操作使用緩沖區(qū)創(chuàng)建的步驟:BufferedOutputStream對象名=newBufferedOutputStream(newFileOutputStream(文件路徑))語法

注意:如使用了try-with-resources語句,則自動關閉資源,無需手動調(diào)用close()方法。實例化

publicclassDemo8_8{ publicstaticvoidmain(String[]args){ System.out.println("——1.BufferedOutputStream示例"); bufferedOutputStream();//調(diào)用寫入文件的方法 System.out.println("——2.圖片復制示例"); copyStream();//調(diào)用復制圖片的方法,使用字節(jié)輸入輸出流 }}一、main()函數(shù)中的代碼二、要讀取的文件內(nèi)容三、寫入結果實例化一實例化

privatestaticvoidbufferedOutputStream(){ StringwData="我和我的祖國\r\n未來可期";//定入文件的內(nèi)容 byte[]content=wData.getBytes();//將文本內(nèi)容轉換為字節(jié)數(shù)組 try(FileOutputStreamfos=newFileOutputStream("src/exception/f3.txt"); BufferedOutputStreambos=newBufferedOutputStream(fos);) { bos.write(content);//將字節(jié)數(shù)組寫入緩沖流 bos.flush(); System.out.println(wData+"-寫入成功!"); }catch(Exceptione){ e.printStackTrace(); }}一、bufferedOutputStream()函數(shù)實現(xiàn)實例化二二、copyStream()函數(shù)實現(xiàn)privatestaticvoidcopyStream(){ StringsourceImg="src/exception/myimg.png";//源圖片路徑,已存在 StringtargetImg="src/exception/target.jpg";//目標圖片路徑,運行程序后生成 try(FileInputStreamfileInputStream=newFileInputStream(sourceImg); FileOutputStreamfileOutputStream=newFileOutputStream(targetImg)) { byte[]buffer=newbyte[1024]; intbytesRead; w

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論