




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
java.io包2字節流4輸入輸出流簡介31文件33RandomAccessFile類6字符流35本章內容提要10.1輸入輸出流簡介流是指在計算機的輸入與輸出之間運動的數據序列。根據操作類型的不同,流可以分為輸入流和輸出流。用來從程序中讀取數據的流稱為輸入流,而用來向程序中寫入數據的流稱為輸出流。輸入輸出系統通過流與物理設備相連接,盡管與它們連接的物理設備不盡相同,但所有的流的行為具有同樣的方式。10.2java.io包Java中數據輸入輸出的所有功能都是通過java.io包中的類和接口完成。10.3文件Java中的抽象類File提供了一些方法來操縱文件和獲得文件的信息。
創建文件對象File類的對象主要用來獲取文件本身的一些信息,不涉及對文件的讀寫操作。Java提供了三種構造方法來創建一個文件對象。
File(Stringfilename)File(StringdirectoryPath,Stringfilename)File(Filef,Stringfilename)10.3文件
//根據參數指定的文件路徑來創建一個File文件對象Filefile1=newFile("c:\\test\\abc.txt");//根據給定的目錄來創建一個File對象,指定其目錄和文件名
Filefile2=newFile("c:\\test","abc.txt");//根據已知的目錄文件對象File來創建一個新的File實體對象
Filefile3=newFile(fiie2,"abc.txt");
10.3文件以上三種方法只是生成一個文件對象,但沒有生成真正的文件,如果要生成實實在在的文件,就需要調用createNewFile()方法。[例10-1]創建文件對象10.3文件方法返回值參數含義canReadboolean無檢查文件里的數據是否可讀canWriteboolean無檢查是否可以寫入數據到文件中createNewFileboolean無產生一個空的文件deleteboolean文件名刪除文件existsboolean無文件是否存在文件操作
File類所提供的方法分為兩類,一類針對文件的處理,另一類針對目錄的處理。10.3文件[例10-2]獲取文件的信息Name:Test10_2.javaPath:C:\\Test10_2.java文件存在文件是可讀的文件是可寫的文件長度為424bytes.
10.3文件目錄操作
1.創建目錄Java提供了File類的重載構造方法來生成一個目錄對象。通過該構造方法只是生成一個目錄對象,如果要生成實實在在的目錄,就需要調用mkdir()方法。File(StringdirectoryPath)
10.3文件2.列出目錄中的文件如果File對象是一個目錄,那么該對象可以調用下述方法列出該目錄下的文件和子目錄:publicString[]list()//用字符串形式返回目錄下的全部文件publicFile[]listFiles()//用File對象形式返回目錄下的全部文件10.3文件Java中可以使用File類的下述兩個方法,列出指定類型的文件:publicString[]list(FilenameFilter obj)該方法用字符串形式返回目錄下的指定類型的所有文件。publicFile[]listFiles(FilenameFilterobj)該方法用File對象返回目錄下的指定類型所有文件。
10.3文件[例10-3]列出c:\java目錄下的所有java文件FilenameFile是一個接口,該接口有一個方法:publicbooleanaccept(Filedir,Stringname)10.3文件運行可執行文件當要執行一個本地機器上的可執行文件時,可以使用java.lang包中的Runtime類。首先使用Runtime類聲明一個對象,然后使用該類的靜態getRuntime()方法創建這個對象。例如:Runtimeec;ec=Runtime.getRuntime();
10.3文件10.4字節流抽象類InputStream是所有字節輸入流的基類,抽象類OutputStream是所有字節輸出流的基類。因為InputStream和OutputStream都是抽象類,所以不能直接生成對象,而是要通過覆蓋其抽象方法的繼承類來創建程序中所需要的對象。InputStream類和OutputStream類
1.InputStream類
InputStream類中定義了與字節輸入流操作有關的方法,可以完成從輸入流中讀入數據的功能.2.OutputStream類OutputStream類定義了所有字節輸出流中的方法,可以完成寫入數據的功能
10.4字節流FileInputStream類和FileOutputStream類
1.FileInputStream類創建文件輸入流為了創建FileInputStream類的對象,用戶可以調用它的構造方法。下面列出了兩個構造方法:FileInputStream(Stringname)FileInputStream(Filefile)10.4字節流處理I/O異常當使用文件輸入流構造方法建立文件輸入流時,可能會出現IOException程序必須使用一個try-catch塊檢測并處理這個異常。為了把一個文件輸入流對象與一個文件關聯起來,使用類似于下面所示的代碼:try{//創建輸入流FileInputStreamins=newFileInputStream("myfile.dat");}catch(IOExceptione){ System.out.println("Filereaderror:"+e);}10.4字節流從輸入流中讀取字節輸入流的作用是提供通往數據的通道,程序可以通過這個通道讀取數據。Java中的read()方法完成了從輸入流中讀取數據的功能。read()方法的格式如下:intread();intread(byteb[]);intread(byteb[],intoff,intlen);10.4字節流關閉流如果沒有關閉那些被打開的流,當另一個程序試圖打開這個流時,則可能會出現錯誤。關閉輸出流的另一個原因是把該流緩沖區的內容沖洗掉。10.4字節流2.FileOutputStream類FileOutputStream提供了文件的寫入能力。FileOutputStream類有2個構造方法:FileOutputStream(Stringname)FileOutputStream(Filefile)可以使用write方法把字節發送給輸出流,如下所示:publicvoidwrite(byteb[])publicvoid.write(byteb[],intoff,intlen)10.4字節流[例10-6]使用字節流寫文件10.4字節流10.5字符流1.Reader和Writer對字符文件(如文本文件)的處理是以Unicode字符為基本單位的。Reader和Writer就解決了這個問題,它們可以以字符為單位處理數據流。Reader和Writer也是兩個抽象基類,只是提供了一些用于字符流處理的方法,本身不能用來生成實例。Java類庫中所有進行字符流處理的類都基于Reader和Writer這兩個類。方法含義intread()讀取單一字符longskip(longn)跳過數據流中的n個字符voidmark()在流中標記一個位置voidreset()返回到流中標記的位置booleanready()測試流是否可讀取booleanmarkSupport()返回一個boolean值,描述流是否支持標記和復位10.5字符流方法含義voidclose()關閉流voidflush()將緩沖區的數據輸出到流voidwrite(char[]char)將一個字符數組輸出到流voidwrite(char[]char,intoffset,intlength)將一個數組內從offset起的length長的字符串輸出到流10.5字符流2.FileReader類和FileWriter類FileReader和FileWriter類分別是Reader和Writer的子類。類FileReader創建了一個可以讀取文件內容的Reader類。它最常用的構造方法如下:publicFileReader(StringfilePath)publicFileReader(FilefileObj)
10.5字符流類FileWriter創建一個可以寫文件的Writer類。它最常用的構造方法如下:publicFileWriter(StringfilePath)publicFileWriter(StringfilePath,booleanappend)publicFileWriter(FilefileObj)10.5字符流3.BufferedReader類和BufferedWriter類BufferedReader類的構造方法如下:BufferedReader(Readerin)例如:BufferedReaderin=BufferedReader(newFileReader("Student.txt"));BufferedReader流能夠讀取文本行,方法是readLine()。10.5字符流可以將BufferedWriter流和FileWriter流連接在一起,然后使用BufferedWriter流將數據以確定長度字符串的形式寫到目的地.例如:FileWritertofile=newFileWriter("hello.txt");BufferedWriterout=BufferedWriter(tofile);
10.5字符流[例10-7]文件編輯1.下面關于Java中的類的說法正確的是()。A.J2SEB.JREC.J2EED.J2ME答案:ACD10.5字符流10.6RandomAccessFile類Java語言中還定義了另一個功能更強大、使用更方便的RandomAccessFile類,它可以實現對文件的隨機讀寫操作。RandomAccessFile類既不是輸入流的子類,也不是輸出流的子類,但是RandomAccessFile類創建的流既可以是輸入流也可以是輸出流。1.創建RandomAccessFile對象RandomAccessFile類有以下兩個構造方法:RandomAccessFile(Stringname,Stringmode)RandomAccessFile(Filefile,Stringmode)例如:Filef1=newFile("a.txt");RandomAccessFilemyf1=newRandomAccessFile(f1,"rw");10.6RandomAccessFile類
2.對文件位置指針的操作RandomAccessFile實現的是隨機讀寫,即可以在文件的任意位置執行數據讀寫。longgetFilePointer()voi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CMMA 4-2017鎂質膠凝材料制品建筑用輕質條板
- T/CIMA 0003-2018電動汽車非車載充電機現場檢測儀
- T/CHTS 10116-2023雄安新區高速公路高性能路基技術指南
- T/CHIA 28.3-2022兒童營養與健康評價指標第3部分:6~17歲
- T/CECS 10298-2023二階反應型水性環氧瀝青防水粘結料
- T/CECS 10083-2020增強豎絲巖棉復合板
- T/CDSA 305.16-2018盾構維護高氣壓作業規程
- T/CCSAS 050-2024化學化工實驗室化學品安全操作規程編寫指南
- T/CCMA 0108-2020預制混凝土構件振動成型平臺
- T/CCAS 014.6-2022水泥企業安全管理導則第6部分:水泥工廠危險能量隔離管理
- 雙膝骨性關節炎課件查房
- 國家開放大學-傳感器與測試技術實驗報告(實驗成績)
- 大眾電子助力轉向EPS 雙齒輪電動助力轉向系統
- 《傳媒翻譯》課件
- 腦卒中患者血壓及血糖管理
- 印刷企業安全生產檢查表
- 能源費用托管型合同能源管理項目
- 2021-2022學年重慶市沙坪壩區八年級(下)期末語文試卷(解析版)2021
- 靜配中心基礎知識課件
- 南非介紹課件
- 2023年安全生產月電力安全生產培訓PPT鑄安全文化之魂守安全發展之基PPT課件(帶內容)
評論
0/150
提交評論