《JAVA程序設(shè)計》課件-項目七 文件_第1頁
《JAVA程序設(shè)計》課件-項目七 文件_第2頁
《JAVA程序設(shè)計》課件-項目七 文件_第3頁
《JAVA程序設(shè)計》課件-項目七 文件_第4頁
《JAVA程序設(shè)計》課件-項目七 文件_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

流的概念JAVA程序設(shè)計7.1流的概念Java的輸入輸出功能是借助輸入輸出流類來實現(xiàn)的,java.io包中包含大量用來完成輸入輸出流的類。Java中流的分類:按照流的運動方向,可以分為輸入流和輸出流兩種。按照流的數(shù)據(jù)類型,可以分為字節(jié)流和字符流。所有的輸入流類都是抽象類InputStream(字節(jié)輸入流)或抽象類Reader類(字符輸入流)的子類。所有的輸出流類都是抽象類OutputStream(字節(jié)輸出流)或抽象類Writer類(字符輸出流)的子類。一、輸入流用于讀數(shù)據(jù),用戶可以從輸入流中讀取數(shù)據(jù),但不能寫入數(shù)據(jù)。當程序需要讀取數(shù)據(jù)的時候,就會開啟一個通向數(shù)據(jù)源的流,數(shù)據(jù)源可以是文件、內(nèi)存、網(wǎng)絡(luò)連接等,信息源的類型可以是包括對象、字符、圖像、聲音在內(nèi)的任何類型。一旦打開輸入流后,程序就可以從輸入流中順序讀取數(shù)據(jù)。一、輸入流從輸入流讀取數(shù)據(jù)的過程如下:打開一個流。如:FileInputStreaminFile=newFileInputStream(“File1.dat”)。從信息源讀信息。如:inFile.read()。關(guān)閉流。如:inFile.close()。二、輸出流用于寫數(shù)據(jù)。只能往輸出流寫,不能讀。和輸入流類似,當程序需要寫入數(shù)據(jù)時,就會開啟一個通向目的地的流。寫數(shù)據(jù)到輸出流的過程如下:打開一個流,如:FileOutputStreamoutFile=newFileOutputStream(“File2.dat”)。寫信息到目的地。如:outFile.write(inFile.read())。關(guān)閉流。如:outFile.close()。7.2File類File類的對象主要用來獲取文件(或目錄)本身的一些信息,如文件的所在的目錄、文件的長度、文件讀寫權(quán)限等,不涉及文件的讀寫操作。1、構(gòu)造函數(shù)File(Stringfilename)File(StringdirectoryPath,Stringfilename)File(Filef,Stringfilename)2、獲取文件的屬性StringgetName()booleancanRead()booleancanWrite()booleanexits()longlength()StringgetAbsolutePath()StringgetParent()booleanisFile()booleanisDirectory()booleanisHidden()longlastModified()3、目錄操作booleanmkdir():創(chuàng)建目錄,若成功返回true。File[]listFiles():以File對象形式返回目錄下的所有文件。String[]list():以字符串的形式返回目錄下的所有文件。4、文件操作booleancreateNewFile():創(chuàng)建一個文件。booleandelete():刪除一個文件。7.3字節(jié)流抽象類OutputStream:所有字節(jié)輸出流的父類。抽象類InputStream:所有字節(jié)輸入流的父類。字節(jié)流以字節(jié)為單位對數(shù)據(jù)進行讀寫。一、字節(jié)輸入流InputStream和字節(jié)輸出流OutputStreamInputStream類的常用方法1voidclose()intread()intread(byte[]b)intread(byte[]b,intoff,intlen)longskip(longn)longavailable()voidmark(intreadlimit)voidreset()一、字節(jié)輸入流InputStream和字節(jié)輸出流OutputStreamOutputStream類的常用方法voidclose()voidwrite(intb)voidwrite(byte[]b)voidwrite(byte[]b,intoff,intlen)voidflush()21/O異常處理InputStream和OutputStream類中的許多方法在調(diào)用時有可能出現(xiàn)1/O異常,因此應(yīng)用程序在調(diào)用這些方法時,要注意捕捉這些異常。3二、文件字節(jié)流FileInputStream和FileOutputStream這兩個類主要用于文件的輸入和輸出,創(chuàng)建的對象可以順序地從本地機上的文件讀寫數(shù)據(jù)。二、文件字節(jié)流FileInputStream和FileOutputStream1FileInputStream類構(gòu)造函數(shù):FileInputStream(Filefile)FileInputStream(Stringname)常用方法:intread()intread(byteb[])intread(byteb[],intoff,intlen)二、文件字節(jié)流FileInputStream和FileOutputStream2FileOutputStream類構(gòu)造方法:FileOutputStream(Stringfilename)FileOutputStream(Filefile)常用方法:voidwrite(intb)voidwrite(byteb[])voidwrite(byteb[],intoff,intlen)二、文件字節(jié)流FileInputStream和FileOutputStream說明打開文件(創(chuàng)建流對象)讀寫文件關(guān)閉文件注意捕捉異常。三、緩沖字節(jié)流BufferedInputStream和BufferedOutputStreamBufferedInputStream1構(gòu)造方法:BufferedInputStream(InputStreamin)BufferedInputStream(InputStreamin,intsize)

創(chuàng)建具有指定緩沖區(qū)大小不一的流。BufferedInputStreambin=newBufferedInputStream(System.in)。如三、緩沖字節(jié)流BufferedInputStream和BufferedOutputStreamBufferedOutputStream2構(gòu)造方法:BufferedOutputStream(InputStreamin)BufferedOutputStream(InputStreamin,intsize)

創(chuàng)建具有指定緩沖區(qū)大小不一的流。BufferedOutputStreambout=newBufferedOutputStream(System.out)。如四、數(shù)據(jù)流DataInputStream和DataOutputStream數(shù)據(jù)流允許程序按著計算機無關(guān)的風格讀取Java原始數(shù)據(jù)。也就是說,當讀取一個數(shù)值時,不必再關(guān)心這個數(shù)值應(yīng)當是多少個字節(jié)。四、數(shù)據(jù)流DataInputStream和DataOutputStream1DataInputStream和DataOutputStream的構(gòu)造方法DataInputStream(InputStreamin):將創(chuàng)建的數(shù)據(jù)輸入流指向一個由參數(shù)in指定的輸入流,以便從后者讀取數(shù)據(jù)(按著機器無關(guān)的風格讀取)。DataOutputStream(OutputStreamout):將創(chuàng)建的數(shù)據(jù)輸出流指向一個由參數(shù)out指定的輸出流,然后通過這個數(shù)據(jù)輸出流把Java數(shù)據(jù)類型的數(shù)據(jù)寫到輸出流out。四、數(shù)據(jù)流DataInputStream和DataOutputStreamDataInputStream和DataOutputStream的常用方法close()skipbytes(intn)readBoolean()readByte()readChar()、readDouble()2readFloat()readInt()readLong()readShort()readUTF()四、數(shù)據(jù)流DataInputStream和DataOutputStreamDataInputStream和DataOutputStream的常用方法writeBoolean(booleanv)writeByte(intv)writeBytes(Strings)writeChars(Strings)writeDouble(doublev)2writeFloat(floatv)writeInt(intv)writeLong(longv)writeShort(intv)writeUTF(Strings)四、數(shù)據(jù)流DataInputStream和DataOutputStream數(shù)據(jù)文件的讀寫讀數(shù)據(jù)文件FileInputStreamfin=newFileInputStream(“f1.dat”)。DataInputStreamdin=newDataInputStream(fin)。floatf=din.readFloat()。寫數(shù)據(jù)文件FileOutputStreamfout=new。FileOutputStream(“f1.dat”)。DataOutputStreamdout=newDataOutputStream(fout)。dout.writeFloat(12.34)。37.4字符流抽象類Writer:所有字符輸出流的父類。抽象類Reader:所有字符輸入流的父類。字符流以字符為單位對數(shù)據(jù)進行讀寫。一、字符輸入流Reader和字符輸入流WriterReader類的常用方法與InputStream類基本相似,Writer類的常用方法與OutputStream類基本相似,它們的主要區(qū)別是:InputStream和OutputStream類操作的是字節(jié),而Reader類和Writer類操作的是字符。二、文件字符流類FileReader和FileWriter與FileInputStream和FileOutputStream字節(jié)流相對應(yīng)的是FileReader和FileWriter字符流,它們分別是Reader和Writer的子類,構(gòu)造方法分別為:FileReader(Filefile)FileReader(StringfileName)FileWriter(Filefile)FileWriter(StringfileName)二、文件字符流類FileReader和FileWriterFileInputStream類以字節(jié)為單位讀取文件,字節(jié)流不能直接操作Unicode字符,所以Java提供了字符流。由于漢字在文件中占用兩個字節(jié),如果使用字節(jié)流,讀取不當會出現(xiàn)亂碼現(xiàn)象,采用字符流就可以避免這個現(xiàn)象,因為在Unicode字符中,一個漢字被看作是一個字符。例1:用字符流建立一個文件,再讀出來。例2:用字符流復制一個文件。三、緩沖字符流1BufferedReader類的構(gòu)造方法:BufferedReader(Readerin)。InputStreamReader類的構(gòu)造方法:InputStreamReader(InputStreamin)。BufferedReader和InputStreamReader三、緩沖字符流1這兩個類都繼承自Reader類。BufferedReader類只能從Reader對象讀取數(shù)據(jù)。InputStreamReader類是將字節(jié)輸入流轉(zhuǎn)換成字符輸入流的轉(zhuǎn)換器。如標準輸入System.in是一個InputStream類的對象,要將InputStream類的對象轉(zhuǎn)換成Reader類的對象,需要用InputStreamReader類對象作為轉(zhuǎn)換器。這兩個緩沖流能夠讀取文本行,方法是readLine()。BufferedReader和InputStreamReader三、緩沖字符流BufferedWriter和OutputStreamWriter2BufferedWriter類的構(gòu)造方法:BufferedWriter(Writerout)。OutputStreamWriter類的構(gòu)造方法:OutputStreamWriter(OutputStreamout)。三、緩沖字符流BufferedWriter和OutputStreamWriter2這兩個類都繼承自Writer。BufferedWriter類將文本寫入字符輸出流。OutputStreamWriter是字符流通向字節(jié)流的橋梁,起到轉(zhuǎn)換器的作用??梢酝ㄟ^write(Strings,intoff,intlen)方法將字符串寫入字符流。7.5Rand

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論