《跨平臺(tái)程序設(shè)計(jì)語言》課件-第九章 流和文件_第1頁
《跨平臺(tái)程序設(shè)計(jì)語言》課件-第九章 流和文件_第2頁
《跨平臺(tái)程序設(shè)計(jì)語言》課件-第九章 流和文件_第3頁
《跨平臺(tái)程序設(shè)計(jì)語言》課件-第九章 流和文件_第4頁
《跨平臺(tái)程序設(shè)計(jì)語言》課件-第九章 流和文件_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第九章流和文件1.流的基本概念和數(shù)據(jù)類型主講人:_________

流的基本概念流是動(dòng)態(tài)的,文件是靜態(tài)的。在Java中,流是字節(jié)序列的一個(gè)抽象概念;流提供一種從輸入、輸出設(shè)備中讀取、寫入的方法。文件通常是流操作起點(diǎn)或終點(diǎn)。一般情況下文件是流的終點(diǎn),經(jīng)過處理、生成的數(shù)據(jù),如果需要永久保存的數(shù)據(jù),通過流的形式寫入存儲(chǔ)設(shè)備,以文件形態(tài)保存下來;文件也是大部分流的起點(diǎn),對(duì)于大多數(shù)處理而言,往往需要讀取大量的數(shù)據(jù),這些數(shù)據(jù)可能分布在網(wǎng)絡(luò)的不同存儲(chǔ)中,通過流進(jìn)行輸入;文件IO操作只是“流”一種形式。除了文件流,還有網(wǎng)絡(luò)流、內(nèi)存流、設(shè)備流等多種形態(tài)的流;數(shù)據(jù)流需要順序操作。寫入數(shù)據(jù)流的數(shù)據(jù),必須按照先后順序逐段寫入;需要讀取其中一段,也是需要從頭順序讀??;“流”是數(shù)據(jù)傳輸?shù)挠行蜃止?jié)序列。“流”與文件的區(qū)別:流的基本概念程序空間緩沖區(qū)外部設(shè)備程序進(jìn)行I/O操作的一般過程由于外部設(shè)備的讀、寫速度遠(yuǎn)低于內(nèi)存的讀寫速度、以及CPU的運(yùn)算速度,如果直接把輸出數(shù)據(jù)直接寫入到外部設(shè)備中(如磁盤中),會(huì)導(dǎo)致CPU需要大量等待時(shí)間,使得運(yùn)行效率降低;同樣,如果直接把磁盤數(shù)據(jù)由CPU直接讀取,也會(huì)導(dǎo)致CPU效率降低。因此,在進(jìn)行I/O操作過程中,通常用緩沖區(qū)進(jìn)行過渡。如果要把數(shù)據(jù)輸出到外部設(shè)備,首先輸出到緩沖區(qū),等緩沖區(qū)寫滿,再一次性把緩沖區(qū)的數(shù)據(jù)寫到磁盤上。如果要從磁盤讀取數(shù)據(jù),預(yù)先從磁盤把數(shù)據(jù)讀入到緩沖區(qū)中,然后,程序再從緩沖區(qū)讀取、處理。在輸入、輸出流中,也是這種處理方式,以提高CPU運(yùn)行效率。在Java中,有的類使用緩沖區(qū)、有的類沒有使用緩沖區(qū),程序員也可以使用自己的包裝類,使用緩沖區(qū)以提高程序運(yùn)行效率。流的數(shù)據(jù)類型InputStream類程序能夠從流中連續(xù)讀取數(shù)據(jù)的對(duì)象叫做輸入流類(InputStream)。在Java開發(fā)語言中,InputStream類描述所有輸入流的抽象概念。InputStream類沒有涉及到具體的輸入設(shè)施,只用于描述輸入流的一些共性,只給出了各種輸入流類在讀取數(shù)據(jù)的一些通用方法,包括網(wǎng)絡(luò)、管道、內(nèi)存、文件等具體的輸入流類,都是InputStream類的子類。OutputStream類在程序中能夠連續(xù)輸出字節(jié)的對(duì)象叫做輸出流。在Java程序中,OutputStream描述類是輸出流的抽象概念,沒有對(duì)應(yīng)具體的流設(shè)備。與InputStream類一樣,也只是描述輸出流類的一些共性的功能方法。輸入流輸出流第九章流和文件2.字節(jié)流的輸入和輸出主講人:_________

字節(jié)流的概念字節(jié)流的概念介紹在程序的開發(fā)中,經(jīng)常需要處理設(shè)備之間的數(shù)據(jù)傳輸,而計(jì)算機(jī)中,無論是文本、圖片、音頻還是視頻,所有文件都是以二進(jìn)制(字節(jié))形式存在的。對(duì)于字節(jié)的輸入輸出,I/O流提供了一系列的流,統(tǒng)稱為字節(jié)流,字節(jié)流是程序中最常用的流,根據(jù)數(shù)據(jù)的傳輸方向可將其分為字節(jié)輸入流和字節(jié)輸出流。字節(jié)流的概念抽象類InputStream和OutputStreamJDK提供了兩個(gè)抽象類InputStream和OutputStream,它們是字節(jié)流的頂級(jí)父類,所有的字節(jié)輸入流都繼承自InputStream,所有的字節(jié)輸出流都繼承自O(shè)utputStream。為了方便理解,可以把InputStream和OutputStream比作兩根“水管”,具體如下:字節(jié)流的概念抽象類InputStream和OutputStream在左圖中,InputStream被看成一個(gè)輸入管道,OutputStream被看成一個(gè)輸出管道,數(shù)據(jù)通過InputStream從源設(shè)備輸入到程序,通過OutputStream從程序輸出到目標(biāo)設(shè)備,從而實(shí)現(xiàn)數(shù)據(jù)的傳輸。由此可見,I/O流中的輸入輸出都是相對(duì)于程序而言的。字節(jié)流的概念I(lǐng)nputStream類的常用方法InputStream類提供了一系列與讀數(shù)據(jù)相關(guān)的方法。具體如下表所示。方法聲明功能描述intread()從輸入流讀取一個(gè)8位的字節(jié),把它轉(zhuǎn)換為0~255之間的整數(shù),并返回這一整數(shù)intread(byte[]b)從輸入流讀取若干字節(jié),把它們保存到參數(shù)b指定的字節(jié)數(shù)組中,返回的整數(shù)表示讀取字節(jié)的數(shù)目intread(byte[]b,intoff,intlen)從輸入流讀取若干字節(jié),把它們保存到參數(shù)b指定的字節(jié)數(shù)組中,off指定字節(jié)數(shù)組開始保存數(shù)據(jù)的起始索引,len表示讀取的字節(jié)數(shù)目voidclose()關(guān)閉此輸入流并釋放與該流關(guān)聯(lián)的所有系統(tǒng)資源字節(jié)流的概念I(lǐng)nputStream體系結(jié)構(gòu)InputStream類雖然提供了一系列和讀數(shù)據(jù)有關(guān)的方法,但是InputStream類是抽象類,不能被實(shí)例化,因此針對(duì)不同的功能,InputStream類提供了不同的子類,這些子類形成了一個(gè)體系結(jié)構(gòu)。如下圖所示。字節(jié)流的概念OutputStream類的常用方法OutputStream類提供了一系列與寫數(shù)據(jù)相關(guān)的方法。具體如下表所示。方法聲明功能描述voidwrite(intb)向輸出流寫入一個(gè)字節(jié)voidwrite(byte[]b)把參數(shù)b指定的字節(jié)數(shù)組的所有字節(jié)寫到輸出流voidwrite(byte[]b,intoff,intlen)將指定byte數(shù)組中從偏移量off開始的len個(gè)字節(jié)寫入輸出流voidflush()刷新此輸出流并強(qiáng)制寫出所有緩沖的輸出字節(jié)voidclose()關(guān)閉此輸出流并釋放與此流相關(guān)的所有系統(tǒng)資源字節(jié)流的概念OutputStream體系結(jié)構(gòu)OutputStream類雖然提供了一系列和寫數(shù)據(jù)有關(guān)的方法,但是OutputStream類是抽象類,不能被實(shí)例化,因此針對(duì)不同的功能,OutputStream類提供了不同的子類,這些子類形成了一個(gè)體系結(jié)構(gòu)。如下圖所示。字節(jié)流讀文件字節(jié)流FileInputStreamInputStream就是JDK提供的基本輸入流,它是所有輸入流的父類,F(xiàn)ileInputStream是InputStream的子類,它是操作文件的字節(jié)輸入流,專門用于讀取文件中的數(shù)據(jù)。案例準(zhǔn)備在實(shí)現(xiàn)案例之前,首先在Java項(xiàng)目的根目錄下創(chuàng)建一個(gè)文本文件test.txt,在文件中輸入內(nèi)容“itcast”并保存;然后使用字節(jié)輸入流對(duì)象來讀取test.txt文本文件。字節(jié)流讀文件案例代碼publicclassExample{ publicstaticvoidmain(String[]args)throwsException{ //創(chuàng)建一個(gè)文件字節(jié)輸入流,并指定源文件名稱

FileInputStreamin=newFileInputStream("test.txt"); intb=0;//定義一個(gè)int類型的變量b,記住每次讀取的一個(gè)字節(jié) while(true){

b=in.read();//變量b記住讀取的一個(gè)字節(jié) if(b==-1){//如果讀取的字節(jié)為-1,跳出while循環(huán) break; } System.out.println(b);//否則將b寫出 }

in.close(); }}下面通過一個(gè)案例實(shí)現(xiàn)字節(jié)流對(duì)文件數(shù)據(jù)的讀取。具體代碼如下所示。字節(jié)流讀文件代碼運(yùn)行結(jié)果由上圖可知,控制臺(tái)打印的結(jié)果分別為105、116、99、97、115和116。在本章的開頭我們講過,計(jì)算機(jī)中的數(shù)據(jù)都是以字節(jié)的形式存在的。在test.txt文件中,字符‘i’‘t’‘c’‘a(chǎn)’‘s’‘t’各占一個(gè)字節(jié),所以最終結(jié)果顯示的就是文件test.txt中的六個(gè)字節(jié)所對(duì)應(yīng)的十進(jìn)制數(shù)。字節(jié)流讀文件文件讀取發(fā)生錯(cuò)誤處理方法有時(shí),在文件讀取的過程中可能會(huì)發(fā)生錯(cuò)誤。例如,文件不存在導(dǎo)致無法讀取,或者用戶沒有讀取權(quán)限等,這些錯(cuò)誤都由JVM自動(dòng)封裝成IOException異常并拋出。如果文件讀取過程中發(fā)生了IO錯(cuò)誤,InputStream就無法正常關(guān)閉,資源也無法及時(shí)釋放,這樣會(huì)造成資源浪費(fèi)。對(duì)此,可以使用try…finally保證InputStream在任何情況下都能夠正確關(guān)閉。修改案例,將讀取文件的代碼放入try語句塊中,將關(guān)閉輸入流的代碼放入finally語句塊中,具體代碼如下所示。字節(jié)流讀文件publicstaticvoidmain(String[]args)throwsException{InputStreaminput=null;

try{ //創(chuàng)建一個(gè)文件字節(jié)輸入流 FileInputStreamin=newFileInputStream("test.txt"); intb=0;//定義一個(gè)int類型的變量b,記住每次讀取的一個(gè)字節(jié) while(true){ b=in.read();//變量b記住讀取的一個(gè)字節(jié) if(b==-1){//如果讀取的字節(jié)為-1,跳出while循環(huán) break; } System.out.println(b);//否則將b寫出

}}finally{ if(input!=null){ input.close(); }

}}字節(jié)流寫文件字節(jié)流FileOutputStreamOutputStream是JDK提供的最基本的輸出流,與InputStream類似,OutputStream也是抽象類,它是所有輸出流的父類。OutputStream是一個(gè)抽象類,如果使用此類,則必須先通過子類實(shí)例化對(duì)象。OutputStream類有多個(gè)子類,其中FileOutputStream子類是操作文件的字節(jié)輸出流,專門用于把數(shù)據(jù)寫入文件。字節(jié)流寫文件案例代碼importjava.io.*;publicclassExample{ publicstaticvoidmain(String[]args)throwsException{ //創(chuàng)建一個(gè)文件字節(jié)輸出流,并指定輸出文件名稱

OutputStreamout=newFileOutputStream("example.txt"); Stringstr=“歡迎光臨";

byte[]b=str.getBytes(); for(inti=0;i<b.length;i++){

out.write(b[i]); }

out.close(); }}下面通過一個(gè)案例演示如何使用FileOutputStream將數(shù)據(jù)寫入文件。具體代碼如下所示。字節(jié)流寫文件代碼運(yùn)行結(jié)果運(yùn)行代碼,運(yùn)行結(jié)果如下圖所示。由圖可知,使用FileOutputStream寫數(shù)據(jù)時(shí),程序自動(dòng)創(chuàng)建了文件example.txt,并將數(shù)據(jù)寫入example.txt文件。注意:如果通過FileOutputStream向一個(gè)已經(jīng)存在的文件中寫入數(shù)據(jù),那么該文件中的數(shù)據(jù)會(huì)被覆蓋。字節(jié)流寫文件在已存在的文件中追加內(nèi)容若希望在已存在的文件內(nèi)容之后追加新內(nèi)容,則可使用FileOutputStream的構(gòu)造函數(shù)FileOutputStream(String

fileName,boolean

append)創(chuàng)建文件輸出流對(duì)象,并把a(bǔ)ppend

參數(shù)的值設(shè)置為true。字節(jié)流寫文件案例代碼publicclassExample{ publicstaticvoidmain(String[]args)throwsException{ //創(chuàng)建文件輸出流對(duì)象,并指定輸出文件名稱和開啟文件內(nèi)容追加功能

OutputStreamout=newFileOutputStream("example.txt",true); Stringstr="歡迎你!"; //將字符串存入byte類型的數(shù)組中

byte[]b=str.getBytes(); for(inti=0;i<b.length;i++){

out.write(b[i]); }

out.close(); }}下面通過一個(gè)案例演示文件內(nèi)容的追加。具體代碼如下所示。字節(jié)流寫文件代碼運(yùn)行結(jié)果運(yùn)行代碼,運(yùn)行結(jié)果如下圖所示。由圖可知,程序通過字節(jié)輸出流對(duì)象out向文件example.txt寫入“歡迎你!”后,并沒有將文件之前的數(shù)據(jù)清空,而是將新寫入的數(shù)據(jù)追加到了文件的末尾。第九章流和文件3.字符流輸入與輸出主講人:_________

字符流定義與基本用法前面講解內(nèi)容都是通過字節(jié)流直接對(duì)文件進(jìn)行讀寫,如果讀寫的文件內(nèi)容是字符,考慮到使用字節(jié)流讀寫字符可能存在傳輸效率以及數(shù)據(jù)編碼問題,此時(shí)建議使用字符流。同字節(jié)流一樣,字符流也有兩個(gè)抽象的頂級(jí)父類,分別是Reader類和Writer類。其中Reader類是字符輸入流,用于從某個(gè)源設(shè)備讀取字符。Writer類是字符輸出流,用于向某個(gè)目標(biāo)設(shè)備寫入字符。字符流的介紹字符流定義與基本用法Reader類提供了一系列與讀數(shù)據(jù)相關(guān)的方法。具體如下表所示。方法聲明功能描述intread()以字符為單位讀數(shù)據(jù)intread(charcbuf[])將數(shù)據(jù)讀入char類型數(shù)組,并返回?cái)?shù)據(jù)長(zhǎng)度intread(charcbuf[],intoff,intlen)將數(shù)據(jù)讀入char類型數(shù)組的指定區(qū)間,并返回?cái)?shù)據(jù)長(zhǎng)度voidclose()關(guān)閉數(shù)據(jù)流longtransferTo(Writerout)將數(shù)據(jù)直接讀入字符輸出流Reader類的常用方法字符流定義與基本用法Reader類作為字符流的頂級(jí)父類,也有許多子類,下面通過一張繼承關(guān)系圖列舉Reader類的常用子類。如下圖所示。Reader體系結(jié)構(gòu)字符流定義與基本用法Writer類提供了一系列與寫數(shù)據(jù)相關(guān)的方法。具體如下表所示。方法聲明功能描述voidwrite(intc)以字符為單位寫數(shù)據(jù)voidwrite(charcbuf[])將char類型數(shù)組中的數(shù)據(jù)寫出voidwrite(charcbuf[],intoff,intlen)將char類型數(shù)組中指定區(qū)間的數(shù)據(jù)寫出voidwrite(Stringstr)將String類型的數(shù)據(jù)寫出voidwirte(Stringstr,intoff,intlen)將String類型指定區(qū)間的數(shù)據(jù)寫出voidflush()可以強(qiáng)制將緩沖區(qū)的數(shù)據(jù)同步到輸出流中voidclose()關(guān)閉數(shù)據(jù)流Writer類的常用方法字符流定義與基本用法Writer類作為字符流的頂級(jí)父類,也有許多子類,下面通過一張繼承關(guān)系圖列舉Writer類的常用子類。如下圖所示。Writer體系結(jié)構(gòu)字符流讀文件在程序開發(fā)中,經(jīng)常需要對(duì)文本文件的內(nèi)容進(jìn)行讀取,如果想從文件中直接讀取字符便可以使用字符輸入流FileReader,通過此流可以從關(guān)聯(lián)的文件中讀取一個(gè)或一組字符。首先在項(xiàng)目的根目錄下新建文本文件src.txt并在文件中輸入“helloitcast”;其次在src文件夾中創(chuàng)建一個(gè)名稱為Example的類。在Example類中創(chuàng)建字節(jié)輸入流FileInputStream對(duì)象讀取src.txt文件中的內(nèi)容,并將字節(jié)輸入流轉(zhuǎn)換成字符輸入流;然后創(chuàng)建一個(gè)字節(jié)輸出流對(duì)象,并指定目標(biāo)文件為des.txt,最后將字節(jié)輸出流轉(zhuǎn)換成字符輸出流將字符輸出到文件中。字符流FileReader案例字符流讀文件運(yùn)行代碼,控制臺(tái)顯示的運(yùn)行結(jié)果如下圖所示。代碼運(yùn)行結(jié)果字符流寫文件在程序開發(fā)中,有時(shí)需要向文本文件寫入內(nèi)容,通過字符流向文本文件寫入內(nèi)容需要使用FileWriter類,F(xiàn)ileWriter類可以一次向文件中寫入一個(gè)或一組字符。importjava.io.*;publicclassExample{ publicstaticvoidmain(String[]args)throwsException{ //創(chuàng)建一個(gè)FileWriter對(duì)象用于向文件中寫入數(shù)據(jù)

FileWriterwriter=newFileWriter("writer.txt"); Stringstr=“你好,歡迎光臨"; writer.write(str);//將字符數(shù)據(jù)寫入到文本文件中 writer.write("\r\n");//將輸出語句換行 writer.close();//關(guān)閉寫入流,釋放資源 }}下面通過一個(gè)案例學(xué)習(xí)如何使用FileWriter字符流將字符寫入文件。具體代碼如下:字符流FileWriter案例代碼字符流寫文件運(yùn)行代碼,運(yùn)行結(jié)果如下圖所示。代碼運(yùn)行結(jié)果字符流寫文件FileWriter同F(xiàn)ileOutputStream一樣,如果指定的文件不存在,就會(huì)先創(chuàng)建文件,再寫入數(shù)據(jù),如果文件存在,則原文件內(nèi)容會(huì)被覆蓋。如果想在文件末尾追加數(shù)據(jù),同樣需要調(diào)用重載的構(gòu)造方法。將案例中的第5行代碼進(jìn)行如下修改。再次運(yùn)行程序,即可實(shí)現(xiàn)在文件中追加內(nèi)容的效果。FileWriterwriter=newFileWriter("writer.txt",true);在已存在的文件中追加內(nèi)容第九章流和文件4.對(duì)象序列化主講人:_________

序列化和反序列化程序在運(yùn)行過程中,數(shù)據(jù)都保存在Java中的對(duì)象中(內(nèi)存),但很多情況下我們都需要將一些數(shù)據(jù)永久保存到磁盤上。為此,Java提供了對(duì)象序列化,對(duì)象序列化可以將對(duì)象中的數(shù)據(jù)保存到磁盤。對(duì)象序列化(Serializable)是指將一個(gè)Java對(duì)象轉(zhuǎn)換成一個(gè)I/O流的字節(jié)序列的過程。反序列化(Deserialize)是指將I/O流中的字節(jié)序列恢復(fù)為Java對(duì)象的過程。序列化和反序列化對(duì)象實(shí)現(xiàn)支持序列化機(jī)制,這個(gè)對(duì)象所屬的類必須是可序列化的。在Java中可序列化的類必須實(shí)現(xiàn)Serializable或Externalizable兩個(gè)接口之一。Serializable接口Externalizable接口系統(tǒng)自動(dòng)存儲(chǔ)必要的信息由程序員決定所存儲(chǔ)的信息Java內(nèi)部支持,易于實(shí)現(xiàn),只需實(shí)現(xiàn)該接口即可,不需要其他代碼支持接口中只提供了兩個(gè)抽象方法,實(shí)現(xiàn)該接口必須要實(shí)現(xiàn)這兩個(gè)抽象方法性能較差性能較好序列化和反序列化Serializable接口和Externalizable接口實(shí)現(xiàn)序列化機(jī)制的主要區(qū)別序列化和反序列化與實(shí)現(xiàn)Serializable接口相比,雖然實(shí)現(xiàn)Externalizable接口可以帶來一定性能上的提升,但由于實(shí)現(xiàn)Externalizable接口,需要實(shí)現(xiàn)兩個(gè)抽象方法,所以實(shí)現(xiàn)Externalizable接口也將導(dǎo)致編程的復(fù)雜度增加。在實(shí)際開發(fā)時(shí),大部分都采用實(shí)現(xiàn)Serializable接口的方式來實(shí)現(xiàn)對(duì)象序列化。使用Serializable接口實(shí)現(xiàn)對(duì)象序列化非常簡(jiǎn)單,只需要讓目標(biāo)類實(shí)現(xiàn)Serializable接口即可,無需實(shí)現(xiàn)任何方法。實(shí)現(xiàn)序列化方法序列化和反序列化publicclassPersonimplementsSerializable{ //為該類指定一個(gè)serialVersionUID變量值 privatestaticfinallongserialVersionUID=1L; //聲明變量 privateintid; privateStringname; privateintage; //此處省略各屬性的getter和setter方法...}實(shí)現(xiàn)序列化。具體代碼如下所示。示例代碼序列化和反序列化serialVersionUID適用于Java的對(duì)象序列化機(jī)制。簡(jiǎn)單來說,Java的對(duì)象序列化機(jī)制是通過判斷類的serialVersionUID來驗(yàn)證版本一致性。在進(jìn)行反序列化時(shí),JVM會(huì)把字節(jié)流中的serialVersionUID與本地相應(yīng)實(shí)體類的serialVersionUID進(jìn)行比較,如果相同就認(rèn)為是一致的,可以進(jìn)行反序列化,否則就會(huì)拋出序列化版本不一致的異常。因此,為了在反序列化時(shí)確保序列化版本的兼容性,最好在每一個(gè)要序列化的類中加入privatestaticfinallongserialVersionUID的變量值,具體數(shù)值可自定義,默認(rèn)是1L。小提示:serialVersionUID第九章流和文件5.Java中的亂碼問題主講人:_________

Unicode簡(jiǎn)介Unicode是一種字符編碼標(biāo)準(zhǔn),旨在為世界上所有文字符號(hào)提供一個(gè)唯一的數(shù)字標(biāo)識(shí),以便于在計(jì)算機(jī)系統(tǒng)中處理和交換文本。它定義了每個(gè)字符的唯一標(biāo)識(shí)號(hào),這個(gè)標(biāo)識(shí)號(hào)通常以十六進(jìn)制表示。全球性:Unicode致力于涵蓋全球范圍內(nèi)所有的文字符號(hào),包括各種語言、符號(hào)、標(biāo)點(diǎn)、特殊字符等,甚至包括表情符號(hào)、圖形符號(hào)等。唯一標(biāo)識(shí):每個(gè)字符都有唯一的標(biāo)識(shí)號(hào),稱為碼點(diǎn),用16位或32位的十六進(jìn)制數(shù)字表示。多種表示方式:Uni

溫馨提示

  • 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)論