Java編程詳細(xì)教程-13-14-IO網(wǎng)絡(luò)課件_第1頁
Java編程詳細(xì)教程-13-14-IO網(wǎng)絡(luò)課件_第2頁
Java編程詳細(xì)教程-13-14-IO網(wǎng)絡(luò)課件_第3頁
Java編程詳細(xì)教程-13-14-IO網(wǎng)絡(luò)課件_第4頁
Java編程詳細(xì)教程-13-14-IO網(wǎng)絡(luò)課件_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、IO與網(wǎng)絡(luò)2File類java.io.File類封裝了文件對(duì)象創(chuàng)建文件對(duì)象File myFile;myFile = new File(“l(fā)zs.mp3”);myFile = new File(“l(fā)yrics”,”lzs.txt”);在Java中,沒有表示文件路徑(目錄)的類,而是將文件路徑也當(dāng)作文件來處理File對(duì)象常用方法(1)和文件名相關(guān)String getName()String getPath()String getAbsolutePath()String getParent()boolean renameTo(File newName)文件檢測(cè)boolean exists()bool

2、ean canWrite()boolean canRead()boolean isFile()boolean isDirectory()boolean isAbsolute()4File對(duì)象常用方法(2)獲取常規(guī)文件信息long lastModified()long length()boolean delete()目錄操作boolean mkdir()String list()5輸入輸出類(I / 0 類)6字節(jié)流:InputStream類InputStream類是所有字節(jié)流輸入類的父類其中包含的主要方法:public int available() throws IOException功能:

3、返回當(dāng)前流對(duì)象中還沒有被讀取的字節(jié)數(shù)量,即獲得流中數(shù)據(jù)長度public void close() throws IOException功能:關(guān)閉當(dāng)前流對(duì)象,釋放資源public void mark(int readlimit)功能: mark用于標(biāo)記當(dāng)前位置;在讀取一定數(shù)量的數(shù)據(jù)(小于readlimit的 數(shù)據(jù))后使用reset可以回到mark標(biāo)記的位置。超過readlimit字節(jié)后 ,就無法回到標(biāo)記位置了readlimit:流讀取的最大字節(jié)數(shù)public int read(byte b) throws IOException功能:按照流中的數(shù)據(jù)存儲(chǔ)順序依次進(jìn)行讀取,最小單位是字節(jié)(byte)

4、public long skip(long n) throws IOException功能:跳過和丟棄此輸入流中數(shù)據(jù)的 n 個(gè)字節(jié)7字節(jié)流:OutputStream類OutputStream類是所有字節(jié)輸出類的父類其中包含的主要方法:public int flush() throws IOException功能:將當(dāng)前流對(duì)象中的緩沖數(shù)據(jù)強(qiáng)制輸出,即實(shí)現(xiàn)立即輸出效果。public void close() throws IOException功能:關(guān)閉當(dāng)前流對(duì)象,釋放資源public int write(byte b) throws IOException功能:按照數(shù)組b存儲(chǔ)順序依次寫入流中,最

5、小單位是字節(jié)(byte)8字符流:Reader類和Writer類Reader類是所有字符流輸入類的父類 Reader類包含的主要方法與InputStream類似,功能大致相同,最大區(qū)別是讀取數(shù)據(jù)的單位是字符(char)Writer類是所有字符流輸出類的父類 Writer類包含的主要方法與OutputStream類似,功能大致相同,最大區(qū)別是寫入數(shù)據(jù)的單位是字符(char) Writer相比OutputStream增加的部分方法:append 方法:將數(shù)據(jù)寫入流的末尾write方法:增加了寫入字符串的方法 9讀取文件(字節(jié)讀取與字符讀?。┩ㄟ^InputStream子類FileInputStrea

6、mFileInputStream finput = new FileInputStream(d:a.txt); byte data = new byte1024; int nByte = finput.read(data);通過Reader子類FileReaderFileReader fread = new FileReader(d:a.txt); char data = new char1024; int nChar = fread.read(data);10寫入文件(字節(jié)寫入與字符寫入)通過OutputStream子類FileOutputStreamFileOutputStream fou

7、tput = new FileOutputStream(d:a.txt); byte data = new byte1024; foutput.write(data);通過Writer子類FileWriterFileWriter fwrite = new FileWriter(d:a.txt); char data = new char1024; fwrite.write(data);File f = new File(d:/pic1.png);File f1 = new File(c:/pic1.png); FileInputStream fis = null;FileOutputStrea

8、m fos = null;try fis = new FileInputStream(f); fos = new FileOutputStream(f1); byte tmp = new byte1024; int n; while(n=fis.read(tmp)!=-1) fos.write(tmp, 0, n); catch (Exception e) e.printStackTrace();finally try fis.close();fos.close(); catch (IOException e) e.printStackTrace();11圖片的拷貝 由于圖片是二進(jìn)制文件,所以

9、只能用字節(jié)流來進(jìn)行拷貝通過字符流的形式來文件的拷貝(FileReader FileWriter)File f = new File(d:/cc.txt);File f1 = new File(c:/cc.txt);FileReader fr = null;FileWriter fw= null;try fr = new FileReader(f);fw = new FileWriter(f1);char tmp = new char1024;int n ;while(n=fr.read(tmp)!= -1)System.out.println(tmp);fw.write(tmp, 0, n);

10、 catch (FileNotFoundException e) e.printStackTrace(); catch (IOException e) e.printStackTrace();finallytry fr.close();fw.close(); catch (IOException e) e.printStackTrace();2022/7/2313BufferedReader/BufferedWriter在IO操作時(shí),為了提高IO類的讀寫效率,提供了一類緩沖流,以便提高讀寫效率。BufferedInputStream/BufferedOutputStreamBufferedRe

11、ader/BufferedWriter利用BufferedReader/BufferedWriter實(shí)現(xiàn)文件的拷貝操作BufferedReader fbufread = new BufferedReader(new FileReader(d:a.txt);BufferedWriter fbufwrite = new BufferedWriter(new FileWriter(d:b.txt);String buf = null;while(buf = fbufread.readLine() != null)fbufwrite.write(buf);fbufwrite.write(rn); 14

12、Java網(wǎng)絡(luò)編程InetAddress類:該類表示一個(gè)IP地址,并將IP地址和域名相關(guān)的操作封裝在里面。InetAddress類中通過getByName方法獲得域名地址對(duì)象InetAddress inet = InetAddress.getByName();也可以通過ip地址InetAddress inet = InetAddress.getByAddress();獲得本地IP地址和主機(jī)名稱:InetAddress inet = InetAddress.getLocalHost();15Java網(wǎng)絡(luò)編程TCP編程 TCP網(wǎng)絡(luò)通訊是一種固定的,可靠的連接方式。 .Socket類代表了客戶端端。

13、.ServerSocket類代表了服務(wù)器端。 在進(jìn)行網(wǎng)絡(luò)編程時(shí),底層細(xì)節(jié)已經(jīng)進(jìn)行很高的封裝 在實(shí)際編程中,只需要指定IP地址和端口,就可以建立連接。16Java網(wǎng)絡(luò)編程SocketSocket 套接字是一種軟件形式的抽象,它用來描述兩臺(tái)機(jī)器之間的一個(gè)連接終端。可以想象機(jī)器之間有一條虛擬的網(wǎng)線,網(wǎng)線的每一端都插在“套接字”或者“插座”里。在Java里,我們創(chuàng)建一個(gè)套接字,通過套接字連接兩個(gè)機(jī)器。從套接字得到我們想要的結(jié)果。我們使用套接字與使用一個(gè)文件類似。使用InputStream和OutputStream來讀和寫。17Java網(wǎng)絡(luò)編程Socket有兩個(gè)基于數(shù)據(jù)流的套接字類:ServerSocket:服務(wù)器用它來“偵聽”鏈接,ServerSocket通過accept方法來獲得一次鏈接,即返回一個(gè)實(shí)際的socketSocket:客戶端用來建立連接ServerSocket主要用來偵聽套接字連接請(qǐng)求,本身不是socket,無法接收實(shí)際的數(shù)據(jù)包。創(chuàng)建ServerSocket的時(shí)候,不必為其分配IP。創(chuàng)建Socket時(shí),需要為其分配IP以及端口號(hào)。網(wǎng)絡(luò)通信方式單工:如果甲可以給乙發(fā)送數(shù)據(jù),但是乙不能向甲發(fā)送數(shù)據(jù),這樣的通信就是單工(電視,電臺(tái)廣播)半雙工:半雙工允

溫馨提示

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

評(píng)論

0/150

提交評(píng)論