Java高級-Java IO系統(tǒng)課件_第1頁
Java高級-Java IO系統(tǒng)課件_第2頁
Java高級-Java IO系統(tǒng)課件_第3頁
Java高級-Java IO系統(tǒng)課件_第4頁
Java高級-Java IO系統(tǒng)課件_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Java

IO系統(tǒng)第二章本章相關(guān)詞匯單詞說明input輸入output輸出file文件,檔案directory目錄stream流write寫,書寫read讀,閱讀source源頭,來源destination目標(biāo),目的地print打印本章目標(biāo)復(fù)習(xí)IO包,強(qiáng)化區(qū)分字符/字節(jié)的區(qū)別運(yùn)用類和類完成復(fù)制文件的功能運(yùn)用類和類配合BufferedReader類和BufferedWriter類來進(jìn)行字符的讀取和寫入功能運(yùn)用InputStreamReader類和BufferedReader類來完成控制臺(tái)輸入的功能清楚PrintWriter類的使用方式:System.outJSP:outjava.io包簡介java.io包也是Java內(nèi)置的包,其中包含一系列對文件和目錄的屬性進(jìn)行操作,對文件進(jìn)行讀寫操作的類;程序中如果要使用到該包中的類,對文件或流進(jìn)行操作,則必須顯式地聲明如下語句:

importjava.io.*;文件什么是文件? 文件可以認(rèn)為是相關(guān)記錄或存放在一起的數(shù)據(jù)的集合;文件一般是存放在磁盤上的,例如:硬盤、軟盤和光盤等等。File類File類的對象不但可以表示文件,還可以表示目錄,在程序中一個(gè)File類對象可以代表一個(gè)文件或目錄;當(dāng)創(chuàng)建一個(gè)文件對象后,就可以利用它來對文件或目錄的屬性進(jìn)行操作,如:文件名、最后修改日期、文件大小等等;需要注意的是,F(xiàn)ile對象并不能直接對文件進(jìn)行讀/寫操作,只能查看文件的屬性;File類的構(gòu)造方法File類的構(gòu)造方法有4種重載方式,常用的如下:如:

//在當(dāng)前目錄下創(chuàng)建一個(gè)與aaa.txt文件名相關(guān)聯(lián)的文件對象

=newFile("aaa.txt");

//指明詳細(xì)的路徑以及文件名,請注意雙斜線

=newFile("D:\\Java\\Hello.java");構(gòu)造方法說明File(Stringpathname)指定文件(或目錄)名和路徑創(chuàng)建文件對象File類中的常用方法方法原型說明booleanexists()判斷文件是否存在,存在返回true,否則返回falsebooleanisFile()判斷是否為文件,是文件返回true,否則返回falsebooleanisDirectory()判斷是否為目錄,是目錄返回true,否則返回falseStringgetName()獲得文件的名稱StringgetAbsolutePath()獲得文件的絕對路徑longlength()獲得文件的長度(字節(jié)數(shù))booleancreateNewFile()throwsIOException創(chuàng)建新文件,創(chuàng)建成功返回true,否則返回false,有可能拋出IOException異常,必須捕捉booleandelete()刪除文件,刪除成功返回true,否則返回falseFile類示例public

class

{

public

static

voidmain(String[]args){

//創(chuàng)建一個(gè)文件對象,使之與一個(gè)文件關(guān)聯(lián)

=newFile("test.txt");

//顯示與文件有關(guān)的屬性信息

System.out.println("文件或目錄是否存在:"+());System.out.println("是文件嗎:"+());System.out.println("是目錄嗎:"+());System.out.println("名稱:"+());System.out.println("絕對路徑:"+());System.out.println("最后修改時(shí)間:"+());System.out.println("文件大?。?+());}}stream(流)流是指一連串流動(dòng)的數(shù)據(jù)信號(hào),是以先進(jìn)先出的方式發(fā)送和接收數(shù)據(jù)的通道。‘A’‘B’‘C’‘D’‘E’‘F’InputStream來自數(shù)據(jù)源的數(shù)據(jù)流OutputStream流向目的地的數(shù)據(jù)流流(續(xù))流的類型根據(jù)流動(dòng)方向的不同,流分為輸入流和輸出流;對于輸入和輸出流,由于傳輸格式的不同,又分為字節(jié)流和字符流:字節(jié)流是指8位的通用字節(jié)流,以字節(jié)為基本單位,在java.io包中,對于字節(jié)流進(jìn)行操作的類大部分繼承于InputStream(輸入字節(jié)流)類和OutputStream(輸出字節(jié)流)類;字符流是指16位的Unicode字符流,以字符(兩個(gè)字節(jié))為基本單位,非常適合處理字符串和文本,對于字符流進(jìn)行操作的類大部分繼承于Reader(讀取流)類和Writer(寫入流)類。使用類讀文件類稱為文件輸入流,繼承于InputStream類,是進(jìn)行文件讀操作的最基本類;它的作用是將文件中的數(shù)據(jù)輸入到內(nèi)存中,我們可以利用它來讀文件;由于它屬于字節(jié)流,因此在讀取Unicode字符(如中文)的文件時(shí)可能會(huì)出現(xiàn)問題。類的構(gòu)造方法類的構(gòu)造方法有3種重載方式,以下是常用的幾種。構(gòu)造方法說明FileInputStream(Filefile)throwsFileNotFoundException使用File對象創(chuàng)建文件輸入流對象,如果文件打開失敗,將拋出異常FileInputStream(Stringname)throwsFileNotFoundException使用文件名或路徑創(chuàng)建文件輸入流對象,如果文件打開失敗,將拋出異常類的常用方法方法原型說明intread()throwsIOException讀取文件中的數(shù)據(jù),一次讀取一個(gè)字節(jié),讀取的數(shù)據(jù)作為返回值返回,如果讀到文件末尾則返回-1,有可能拋異常,必須捕捉intread(byte[]b)throwsIOException讀取文件中的數(shù)據(jù),將讀到的數(shù)據(jù)存放到byte型數(shù)組中,并返回讀取的字節(jié)的數(shù)量,未讀到數(shù)據(jù)返回-1,有可能拋異常,必須捕捉voidclose()throwsIOException關(guān)閉流對象,有可能拋異常,必須捕捉對象讀文件示例1public

class{

public

static

voidmain(String[]args){

try{=newFile("test.txt");//創(chuàng)建文件對象

//使用文件對象創(chuàng)建文件輸入流對象,相當(dāng)于打開文件

fis=newFileInputStream(file);

for(inti=0;i<();i++){

charch=(char)(fis.read());//循環(huán)讀取字符

System.out.print(ch);}System.out.println();fis.close();//關(guān)閉流

}catch(fnfe){System.out.println("文件打開失敗。");}catch(IOExceptionioe){ioe.printStackTrace();}}}對象讀文件示例2public

class{

public

static

voidmain(String[]args){

try{=newFile("test.txt");//創(chuàng)建文件對象

fis=newFileInputStream(file);

//根據(jù)文件的字節(jié)長度創(chuàng)建字節(jié)數(shù)組

byte[]buf=new

byte[(int)(())];fis.read(buf);//讀取文件中的數(shù)據(jù)存放到字節(jié)數(shù)組中

Stringstr=newString(buf);//利用字節(jié)數(shù)組創(chuàng)建字符串

System.out.println(str);//打印字符串

fis.close();//關(guān)閉流

}catch(fnfe){System.out.println("文件打開失敗。");}catch(IOExceptionioe){ioe.printStackTrace();}}}使用類寫文件類稱為文件輸出流,繼承于OutputStream類,是進(jìn)行文件寫操作的最基本類;它的作用是將內(nèi)存中的數(shù)據(jù)輸出到文件中,我們可以利用它來寫文件。類的構(gòu)造方法類的構(gòu)造方法有5種重載方式,以下是常用的幾種。構(gòu)造方法說明FileOutputStream(Filefile)throwsFileNotFoundException使用File對象創(chuàng)建文件輸出流對象,如果文件打開失敗,將拋出異常FileOutputStream(Filefile,booleanappend)throwsFileNotFoundException使用File對象創(chuàng)建文件輸出流對象,并由參數(shù)append指定是否追加文件內(nèi)容,true為追加,false為不追加,異常情況同上FileOutputStream(Stringname)throwsFileNotFoundException直接使用文件名或路徑創(chuàng)建文件輸出流對象,異常情況同上FileOutputStream(Stringname,booleanappend)throwsFileNotFoundException直接使用文件名或路徑創(chuàng)建文件輸出流對象,并由參數(shù)append指定是否追加,異常情況同上類的常用方法方法原型說明voidwrite(intb)throwsIOException往文件中寫數(shù)據(jù),一次寫一個(gè)字節(jié),有可能拋異常,必須捕捉voidwrite(byte[]b)throwsIOException往文件中寫數(shù)據(jù),將byte數(shù)組中的數(shù)據(jù)全部寫入到文件中,有可能拋異常,必須捕捉voidclose()throwsIOException關(guān)閉流對象,有可能拋異常,必須捕捉對象寫文件示例1public

class

{

//在函數(shù)內(nèi)部不進(jìn)行異常處理,將異常拋出函數(shù)外部

public

static

voidmain(String[]args)throwsIOException{Stringstr="Helloworld!";=newFile("test.txt");//創(chuàng)建文件對象

//通過文件對象創(chuàng)建文件輸出流對象

//附加第二個(gè)參數(shù)true,指定進(jìn)行文件追加,默認(rèn)為不追加

fos=newFileOutputStream(file,true);

//逐個(gè)將字符寫入到文件中

for(inti=0;i<str.length();i++){fos.write(str.charAt(i));}fos.close();//關(guān)閉流

}}對象寫文件示例2public

class

{

//在函數(shù)內(nèi)部不進(jìn)行異常處理,將異常拋出函數(shù)外部

public

static

voidmain(String[]args)throwsException{Stringstr="ILoveJava";

//通過文件名創(chuàng)建文件輸出流對象

fos=newFileOutputStream("test.txt");

//將字符串轉(zhuǎn)化為字節(jié)數(shù)組

byte[]buffer=str.getBytes();

//將字節(jié)數(shù)組中包含的數(shù)據(jù)一次性寫入到文件中

fos.write(buffer);

//關(guān)閉流

fos.close();}}小結(jié)類和類是成對出現(xiàn)的,一個(gè)進(jìn)行輸入(讀文件)操作,一個(gè)進(jìn)行輸出(寫文件)操作;由于采用字節(jié)方式進(jìn)行數(shù)據(jù)傳輸,不必考慮數(shù)據(jù)的格式問題,這兩個(gè)類對文件操作的效率較高;可以使用這兩個(gè)類完成復(fù)制文件的操作。復(fù)制文件示例public

classCopy{

public

static

voidmain(String[]args)throwsIOException{=newFile("src.dat");//源文件對象

=newFile("dest.dat");//目標(biāo)文件對象

if(!(dest())){//判斷目標(biāo)文件是否存在

dest();//如果不存在則創(chuàng)建新文件

}

//使用源文件對象創(chuàng)建文件輸入流對象

fis=newFileInputStream(srcFile);

//使用目標(biāo)文件對象創(chuàng)建文件輸出流對象

fos=newFileOutputStream(destFile);

byte[]buf=new

byte[1024];//創(chuàng)建字節(jié)數(shù)組,作為臨時(shí)緩沖

System.out.println("開始復(fù)制文件...");

while(fis.read(buf)!=-1){//循環(huán)從文件輸入流中讀取數(shù)據(jù)

fos.write(buf);//寫入到文件輸出流中

}System.out.println("文件復(fù)制成功!");fis.close();//關(guān)閉流

fos.close();}}字符流類和類雖然可以高效率地讀/寫文件,但對于Unicode編碼的文件,使用它們有可能出現(xiàn)亂碼;考慮到Java是跨平臺(tái)的語言,要經(jīng)常操作Unicode編碼的文件,使用字符流操作文件是有必要的;使用字符流將涉及到以下4個(gè)類:類和類;BufferedReader類和BufferedWriter類。類類稱為文件讀取流,允許以字符流的形式對文件進(jìn)行讀操作,其構(gòu)造方法有3種重載方式,以下是常用的幾種:該類將從文件中逐個(gè)地讀取字符,效率比較低下,因此一般將該類對象包裝到緩沖流中進(jìn)行操作。構(gòu)造方法說明FileReader(Filefile)throwsFileNotFoundException使用File對象創(chuàng)建文件讀取流對象,如果文件打開失敗,將拋出異常FileReader(Stringname)throwsFileNotFoundException使用文件名或路徑創(chuàng)建文件讀取流對象,如果文件打開失敗,將拋出異常BufferedReader類BufferedReader類主要為字符流提供緩沖,以提高效率,其構(gòu)造方法有2種重載方式,以下是常用的幾種:以下是BufferedReader類的常用方法:構(gòu)造方法說明BufferedReader(Readerin)將字符讀取流對象包裝成緩沖讀取流對象方法原型說明StringreadLine()throwsIOException從緩沖讀取流中讀取一行字符,以字符串的形式返回,有可能拋異常,必須捕捉voidclose()throwsIOException關(guān)閉流對象,有可能拋異常,必須捕捉配合BufferedReader讀文件示例public

classRraderDemo{

public

static

voidmain(String[]args)throwsIOException{=newFile("test.txt");

//通過文件對象創(chuàng)建文件讀取流對象

fr=newFileReader(file);

//將文件讀取流包裝成緩沖讀取流

BufferedReaderbr=newBufferedReader(fr);

Stringstr;

while((str=br.readLine())!=null)//逐行讀取數(shù)據(jù)

{System.out.println(str);}br.close();//關(guān)閉流

fr.close();//關(guān)閉流

}}類類稱為文件寫入流,以字符流的形式對文件進(jìn)行寫操作,其構(gòu)造方法有5種重載,以下是常用的幾種:與類相似,F(xiàn)ileWriter類同樣需要使用緩沖流進(jìn)行包裝。構(gòu)造方法說明FileWriter(Filefile)throwsIOException使用File對象創(chuàng)建文件寫入流對象,如果文件打開失敗,將拋出異常,必須捕捉FileWriter(Filefile,booleanappend)throwsIOException使用File對象創(chuàng)建文件寫入流對象,并由參數(shù)append指定是否追加,異常情況同上FileWriter(Stringname)throwsIOException直接使用文件名或路徑創(chuàng)建文件寫入流對象,異常情況同上FileWriter(Stringname,booleanappend)throwsIOException直接使用文件名或路徑創(chuàng)建文件寫入流對象,并由參數(shù)append指定是否追加,異常情況同上BufferedWriter類BufferedWriter類可以為類提供緩沖,其構(gòu)造方法有2種重載方式,以下是常用的幾種:以下是BufferedWriter類的常用方法:構(gòu)造方法說明BufferedWriter(Writerout)將字符寫入流對象包裝成緩沖寫入流對象方法原型說明voidwrite(Stringstr)throwsIOException將一行字符串寫入到緩沖寫入流中,有可能拋異常,必須捕捉voidnewLine()throwsIOException將一個(gè)回車換行符寫入到文件中,從而達(dá)到換行的效果,有可能拋異常,必須捕捉配合BufferedWriter寫文件示例public

classWriterDemo{

public

static

voidmain(String[]args)throwsIOException{=newFile("test.txt");

//通過文件對象創(chuàng)建文件輸出字符流對象

fw=newFileWriter(file);

//將文件輸出字符流包裝成緩沖流

BufferedWriterbw=newBufferedWriter(fw);bw.write("大家好!");bw.write("我正在學(xué)習(xí)Java。");bw.newLine();//換個(gè)新行

bw.write("請多多指教。");bw.newLine();//換新行

bw.write("Luckybu");bw.close();//關(guān)閉流

fw.close();//關(guān)閉流

}}PrintWriter類PrintWriter類稱為打印寫入流,向文本輸出流打印對象的格式化表示形式,它能夠用于將字節(jié)的輸出流轉(zhuǎn)成字符的輸出流。其構(gòu)造方法有8種重載,以下是常用的幾種:構(gòu)造方法說明PrintWriter(OutputStream

out)根據(jù)現(xiàn)有的OutputStream創(chuàng)建不帶自動(dòng)行刷新的新PrintWriter。PrintWriter(OutputStream

out,boolean

autoFlush)通過現(xiàn)有的OutputStream創(chuàng)建新的PrintWriter。PrintWriter(File

file)使用指定文件創(chuàng)建不具有自動(dòng)行刷新的新PrintWriter。PrintWriter(String

fileName)創(chuàng)建具有指定文件名稱且不帶自動(dòng)行刷新的新PrintWriter。PrintWriter類的常用方法方法原型說明voidprint(Strings)throwsIOException打印字符串。voidprintln(Strings)throwsIOException打印String,然后終止該行。PrintWriterprintf(Stringformat,Object…args)throwsIOException使用指定格式字符串和參數(shù)將格式化的字符串寫入此writer的便捷方法。voidwrite(Strings)throwsIOException寫入字符串。voidflush()throwsIOException刷新該流的緩沖。voidclose()throwsIOException關(guān)閉該流。java.io.PrintWriterPrintWriter是字符輸出流,它提供格式化的輸出功能,由于構(gòu)造方法的支持,允許將字節(jié)流轉(zhuǎn)化成字符流的形式;它的構(gòu)造方法共有8種重載,以下是常用的幾種:構(gòu)造方法說明PrintWriter(OutputStreamout)利用現(xiàn)有的OutputStream構(gòu)造格式打印流,但不帶自動(dòng)刷新緩存的功能PrintWriter(OutputStreamout,booleanautoFlush)利用現(xiàn)有的OutputStream構(gòu)造格式打印流,由參數(shù)autoFlush指定是否帶自動(dòng)刷新緩存的功能PrintWriter(Writerout)利用現(xiàn)有的Writer構(gòu)造格式打印流,但不帶自動(dòng)刷新緩存的功能PrintWriter(Writerout,booleanautoFlust)利用現(xiàn)有的Writer構(gòu)造格式打印流,由參數(shù)autoFlush指定是否帶自動(dòng)刷新緩存的功能PrintWriter(Filefile)throwsFileNotFoundException針對由file指定的文件對象,創(chuàng)建格式打印流,但不帶自動(dòng)刷新緩存的功能PrintWriter的常用方法方法原型說明voidprint(Xx)該方法提供8種重載,可以輸出任意數(shù)據(jù)類型,但輸出時(shí)不帶換行效果,因此,也不會(huì)自動(dòng)刷新緩存voidprintln(Xx)該方法提供10種重載,可以輸出任意數(shù)據(jù)類型,有換行效果,如果構(gòu)造方法設(shè)置為自動(dòng)刷新的話,該方法的自動(dòng)刷新功能將生效voidflush()刷新緩存區(qū)voidclose()關(guān)閉流PrintWriter使用注意事項(xiàng)PrintWriter可以不配合BufferedWriter類一起使用。如果啟用了自動(dòng)刷新,則只有在調(diào)用println、printf或format的其中一個(gè)方法時(shí)才可能完成此操作,否則不能完成自動(dòng)刷新的功能。從控制臺(tái)接受輸入System.in的read方法可以從控制臺(tái)接受輸入;但由于in實(shí)際上是一個(gè)InputStream類的對象,它只能以字節(jié)形式接收數(shù)據(jù),并且一次只能接受一個(gè)字節(jié),這使輸入操作很不便;必須將System.in進(jìn)行處理,才可以順利地從控制臺(tái)接受輸入,這將使用到:InputStreamReader類BufferedReader類轉(zhuǎn)換和包裝System.inInputStreamReader類用于將InputStream類型的字節(jié)輸入流對象轉(zhuǎn)換成Reader類型的字符讀取流對象;其構(gòu)造方法有4種重載方式,常用的如下:可以使用它來轉(zhuǎn)換System.in,如:

InputStreamReaderisr=newInputStreamReader(System.in);這樣的字符流效率很低,再使用BufferedReader類來為其建立緩沖,如:

BufferedReaderbr=newBufferedReader(isr);這樣,就可以從控制臺(tái)接受輸入了。構(gòu)造方法說明InputStreamReader(InputStreamin)將InputStream對象轉(zhuǎn)換成Reader對象從控制臺(tái)接受輸入示例public

classConsoleInputDemo{

public

static

voidmain(String[]args)throwsIOException{

//將System.in轉(zhuǎn)化成字符流對象

InputStreamReaderisr=newInputStreamReader(System.in);

//用緩沖流進(jìn)行包裝

BufferedReaderbr=newBufferedReader(isr);

System.out.println("請輸入您的姓名:");Stringname=br.readLine();//接受輸入

System.out.println("請輸入您的年齡:");

intage=Integer.parseInt(br.readLine());//接受輸入

System.out.println("您的姓名:"+name);System.out.println("您的年齡:"+age);

br.close();//關(guān)閉流

isr.close();//關(guān)閉流

}}從控制臺(tái)輸入并寫入到文件示例/*本例從控制臺(tái)接受輸入,然后寫入到文件中,直到用戶輸入"!!!"為止*/=newFile("input.txt");//創(chuàng)建文件對象if(!())//判斷該文件是否存在,如果不存在則創(chuàng)建新文件{();}fr=newFileWriter(file);//針對文件對象創(chuàng)建文件寫入流對象BufferedWriterbw=newBufferedWriter(fr);//為文件寫入流建立緩沖流//將控制臺(tái)輸入對象轉(zhuǎn)化成字符流,并建立緩沖流BufferedReaderbin=newBufferedReader(newInputStreamReader(System.in));Stringstr=bin.readLine();//接受從控制臺(tái)輸入的一行字符串while(!(str.equals("!!!")))//如果輸入"!!!"則代表輸入結(jié)束{bw.write(str);//將從控制臺(tái)輸入的字符串寫入到文件中

bw.newLine();//換新行

str=bin.readLine();//再從控制臺(tái)接受輸入}//關(guān)閉所有已經(jīng)打開的流bw.close();fr.close();bin.close();對象的序列化1將對象轉(zhuǎn)換為字節(jié)流保存起來,并在日后還原這個(gè)對象,這種機(jī)制叫做對象序列化。序列化的過程就是對象寫入字節(jié)流和從字節(jié)流中讀取對象java對象序列化不僅保留一個(gè)對象的數(shù)據(jù),而且遞歸保存對象引用的每個(gè)對象的數(shù)據(jù)??梢詫⒄麄€(gè)對象層次寫入字節(jié)流中,可以保存在文件中或在網(wǎng)絡(luò)連接上傳遞。利用對象序列化可以進(jìn)行對象的“深克隆”,即復(fù)制對象本身及引用的對象本身。序列化一個(gè)對象可能得到整個(gè)對象序列。

一個(gè)對象要想能夠?qū)崿F(xiàn)序列化,必須實(shí)現(xiàn)Serializable接口Java引入對象串行化上是為了實(shí)現(xiàn)兩個(gè)特性:JavaBeans和RMI對象序列化2當(dāng)一個(gè)對象被序列化時(shí),只保存對象的非靜態(tài)成員變量,不能保存任何的成員方法和靜態(tài)的成員變量。如果一個(gè)對象的成員變量是一個(gè)對象,那么這個(gè)對象的數(shù)據(jù)成員也會(huì)被保存。如果一個(gè)可序列化的對象包含對某個(gè)不可序列化的對象的引用,那么整個(gè)序列化操作將會(huì)失敗,并且會(huì)拋出一個(gè)NotSerializableException。我們可以將這個(gè)引用標(biāo)記為transient,那么對象仍然可以序列化。ObjectInputStreamObjectOutputStreamNIO——緩沖器Buffer類新I/O通過使用Buffer讀寫數(shù)據(jù)避免了資源浪費(fèi)。Buffer對象是線性的,有序的數(shù)據(jù)集合。每個(gè)Buffer有以下的屬性屬性說

明capacity這個(gè)Buffer最多能放多少數(shù)據(jù)。capacity一般在buffer被創(chuàng)建的時(shí)候指定limit在Buffer上進(jìn)行的讀寫操作都不能越過這個(gè)下標(biāo)。當(dāng)寫數(shù)據(jù)到buffer中時(shí),limit一般和capacity相等,當(dāng)讀數(shù)據(jù)時(shí),limit代表buffer中有效數(shù)據(jù)的長度。position讀/寫操作的當(dāng)前下標(biāo)。當(dāng)使用buffer的相對位置進(jìn)行讀/寫操作時(shí),讀/寫會(huì)從這個(gè)下標(biāo)進(jìn)行,并在操作完成后,buffer會(huì)更新下標(biāo)的值。NIO——緩沖器Buffer類Buffer提供了改變以上三個(gè)屬性的方法屬性說

明clear()清除此緩沖區(qū)。將位置設(shè)置為

0,將限制設(shè)置為容量flip()將限制設(shè)置為當(dāng)前位置,然后將位置設(shè)置為

0rewind()將位置設(shè)置為

0,不改變極限NIO——通道Channel接口Channel表現(xiàn)了一個(gè)可以進(jìn)行IO操作的通道(比如,通過,我們可以對文件進(jìn)行讀寫操作)。java.nio.channels包含了文件系統(tǒng)和網(wǎng)絡(luò)通訊相關(guān)的channel類。這個(gè)包通過Selector和SelectableChannel這兩個(gè)類,還定義了一個(gè)進(jìn)行異步(non-blocking)IO操作的API,這對需要高性能IO的應(yīng)用非常重要。Channel中只

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論