第8章 IO(輸入輸出)―教學(xué)設(shè)計(jì)_第1頁(yè)
第8章 IO(輸入輸出)―教學(xué)設(shè)計(jì)_第2頁(yè)
第8章 IO(輸入輸出)―教學(xué)設(shè)計(jì)_第3頁(yè)
第8章 IO(輸入輸出)―教學(xué)設(shè)計(jì)_第4頁(yè)
第8章 IO(輸入輸出)―教學(xué)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、傳智播客Java基礎(chǔ)入門教學(xué)設(shè)計(jì)課程名稱: Java基礎(chǔ)教程 授課年級(jí): 2014年級(jí) 授課學(xué)期: 2014學(xué)年第一學(xué)期教師姓名: 某某老師 2014年02月09日課題名稱第8章 IO(輸入輸出)計(jì)劃學(xué)時(shí)8 課時(shí)內(nèi)容分析大多數(shù)應(yīng)用程序都需要實(shí)現(xiàn)與設(shè)備之間的數(shù)據(jù)傳輸,在Java中,將這種通過(guò)不同輸入/輸出設(shè)備之間的數(shù)據(jù)傳輸抽象表述為“流”。Java中的“流”都位于java.io包中,稱為IO(輸入/輸出)流,IO流有很多種,本課程將對(duì)這些流進(jìn)行詳細(xì)的講解。教學(xué)目標(biāo)及基本要求要求學(xué)生掌握字節(jié)流、字符流、轉(zhuǎn)換流和File類,了解IO中幾個(gè)比較重要流以外的其它IO流、RandomAccesseFile

2、和字符編碼重點(diǎn)及措施教學(xué)重點(diǎn):字節(jié)流、字符流、轉(zhuǎn)換流和File類難點(diǎn)及措施教學(xué)難點(diǎn):字節(jié)流、字符流、其它IO流、轉(zhuǎn)換流和File類。本章中內(nèi)容均有一定的難度,而且涉及的流種類較繁雜,因而理清各種流之間的關(guān)系及其各個(gè)流的作用,將有助于理解和記憶,同時(shí)引導(dǎo)學(xué)生結(jié)合代碼學(xué)習(xí)也是十分重要的。教學(xué)方式教學(xué)采用教師課堂講授為主,使用教學(xué)PPT講解教學(xué)過(guò)程第一課時(shí)(字節(jié)流、字節(jié)流讀寫文件、文件的拷貝、字節(jié)流的緩沖區(qū)、裝飾設(shè)計(jì)模式、字節(jié)緩沖流)l 字節(jié)流 字節(jié)流分類字節(jié)流分為字節(jié)輸入流和字節(jié)輸出流,其中字節(jié)輸入流繼承自InputStream,字節(jié)輸出流繼承自O(shè)utputStream。 InputStream的

3、常用方法方法聲明功能描述in read()從輸入流讀取一個(gè)8位的字節(jié),把它轉(zhuǎn)換為0255之間的整數(shù),并返回這一整數(shù)int read(byte b)從輸入流讀取若干字節(jié),把它們保存到參數(shù)b指定的字節(jié)數(shù)組中,返回的整數(shù)表示讀取字節(jié)數(shù)int read(byte b,int off,int len)從輸入流讀取若干字節(jié),把它們保存到參數(shù)b指定的字節(jié)數(shù)組中,off指定字節(jié)數(shù)組開始保存數(shù)據(jù)的起始下標(biāo),len表示讀取的字節(jié)數(shù)目void close()關(guān)閉此輸入流并釋放與該流關(guān)聯(lián)的所有系統(tǒng)資源 OutputStream的常用方法方法名稱方法描述void write(int b)向輸出流寫入一個(gè)字節(jié)void w

4、rite(byte b)把參數(shù)b指的字節(jié)數(shù)組的所有字節(jié)寫到輸出流void write(byte b,int off,int len)將指定byte數(shù)組中從偏移量off開始的len個(gè)字節(jié)寫入輸出流void close()關(guān)閉此輸出流并釋放與此流相關(guān)的所有系統(tǒng)資源void flush()刷新此輸出流并強(qiáng)制寫出所有緩沖的輸出字節(jié)l 字節(jié)流讀寫文件由于計(jì)算機(jī)中的數(shù)據(jù)基本都保存在硬盤的文件中,因此操作文件中的數(shù)據(jù)是一種很常見(jiàn)的操作。在操作文件時(shí),最常見(jiàn)的就是從文件中讀取數(shù)據(jù)并將數(shù)據(jù)寫入文件,即文件的讀寫。針對(duì)文件的讀寫,JDK專門提供了兩個(gè)類,分別是FileInputStream和FileOutputS

5、tream。FileInputStream是InputStream的子類,它是操作文件的字節(jié)輸入流,可以通過(guò)重載的read()方法讀取文件中的數(shù)據(jù)。 FileOutputStream是OutputStream的子類,它是操作文件的字節(jié)輸出流,可以通過(guò)重載的write()方法將獲取到的數(shù)據(jù)寫入文件。如果希望在已存在的文件內(nèi)容之后追加新內(nèi)容,則可使用FileOutputStream的構(gòu)造函數(shù)FileOutputStream(StringfileName, booleanappend)來(lái)創(chuàng)建文件輸出流對(duì)象關(guān)閉流。l 文件的拷貝在應(yīng)用程序中,IO流通常都是成對(duì)出現(xiàn)的,即輸入流和輸出流一起使用。例如文件

6、的拷貝就需要通過(guò)輸入流來(lái)讀取文件中的數(shù)據(jù),通過(guò)輸出流將數(shù)據(jù)寫入文件,示例代碼如下所示: / 創(chuàng)建一個(gè)字節(jié)輸入流,用于讀取當(dāng)前目錄下source文件夾中的mp3文件InputStream in = new FileInputStream(sourcetyle.mp3);/ 創(chuàng)建一個(gè)字節(jié)輸出流,用于將讀取的數(shù)據(jù)寫入target目錄下的文件中OutputStream out = new FileOutputStream(targetstyle.mp3);int len; / 定義一個(gè)int類型的變量len,記住每次讀取的一個(gè)字節(jié)/ 讀取一個(gè)字節(jié)并判斷是否讀到文件末尾while (len = in.r

7、ead() != -1) out.write(len); / 將讀到的字節(jié)寫入文件in.close();out.close();需要注意的是,以上例程中在定義文件路徑時(shí)使用了“”,這是因?yàn)樵赪indows路徑分隔符基礎(chǔ)上添加了轉(zhuǎn)義符()。除此之外,目錄符號(hào)也可以用正斜線(/)來(lái)表示,如:source/style.mp3。l 字節(jié)流的緩沖區(qū)實(shí)現(xiàn)文件的拷貝時(shí),為了提高效率,可以定義一個(gè)字節(jié)數(shù)組作為緩沖區(qū),然后使用read(byte b)方法一次性讀取多個(gè)字節(jié),并使用write(byte b)方法將字符數(shù)組中保存的數(shù)據(jù)一次性寫入文件。l 裝飾設(shè)計(jì)模式裝飾設(shè)計(jì)模式就是通過(guò)包裝一個(gè)類,動(dòng)態(tài)地為它增加功能

8、的一種設(shè)計(jì)模式。例如,下面的例子實(shí)現(xiàn)了RadarCar類對(duì)Car類的包裝,讓Benz車新增了倒車?yán)走_(dá)功能。class Car private String carName; / 定義一個(gè)屬性,代表車名public Car(String carName) this.carName = carName;public void show() / 實(shí)現(xiàn)Car的show()方法System.out.println(我是 + carName + ,具有基本功能);/ 定義一個(gè)類RadarCarclass RadarCar public Car myCar;public RadarCar(Car myCar

9、) / 通過(guò)構(gòu)造方法接收被包裝的對(duì)象this.myCar = myCar;public void show() myCar.show();System.out.println(具有倒車?yán)走_(dá)功能); / 實(shí)現(xiàn)功能的增強(qiáng)l 字節(jié)緩沖流在IO包中提供兩個(gè)帶緩沖的字節(jié)流,分別是BufferedInputStream和BufferdOutputStream,這兩個(gè)流都使用了裝飾設(shè)計(jì)模式。它們的構(gòu)造方法中分別接收InputStream和OutputStream類型的參數(shù)作為被包裝對(duì)象,在讀寫數(shù)據(jù)時(shí)提供緩沖功能。應(yīng)用程序、緩沖流和底層字節(jié)流之間的關(guān)系如下圖所示。第二課時(shí)(字符流、字符流操作文件、LineNu

10、mberReader、轉(zhuǎn)換流)l 字符流 字符流定義字符流用來(lái)操作字符,字符流也有兩個(gè)抽象的頂級(jí)父類,分別是Reader和Writer。其中Reader是字符輸入流,用于從某個(gè)源設(shè)備讀取字符,Writer是字符輸出流,用于向某個(gè)目標(biāo)設(shè)備寫入字符。 Reader和Writer體系結(jié)構(gòu)Reader體系結(jié)構(gòu)如下圖所示:Writer體系結(jié)構(gòu)如下圖所示:l 字符流操作文件 FileReader和FileWriter如果想從文件中直接讀取字符,可以使用字符輸入流FileReader。FileReader的read()方法可以從關(guān)聯(lián)的文件中讀取一個(gè)或一組字符。需要注意的是,字符輸入流的read()方法返回的

11、是int類型的值,如果想獲得字符就需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換。如果要向文件中寫入字符就需要使用FileWriter類。FileWriter是Writer的一個(gè)子類,它的用法同F(xiàn)ileOutputStream類似。 BufferedReader和BufferedWriter字符流同樣提供了帶緩沖區(qū)的包裝流,分別是BufferedReader和BufferedWriter,其中BufferedReader用于對(duì)字符輸入流進(jìn)行包裝,BufferedWriter用于對(duì)字符輸出流進(jìn)行包裝。l LineNumberReaderJDK中提供了一個(gè)可以跟蹤行號(hào)的輸入流LineNumberReader,它是Buffe

12、redReader的直接子類。在LineNumberReader類中,定義了跟蹤行號(hào)的方法,其中setLineNumber()方法用于設(shè)置行號(hào)的初始值,getLineNumber()方法用于讀取行號(hào)。值得注意的是,調(diào)用getLineNumber()方法讀取行號(hào)時(shí),行號(hào)是從1開始的。l 轉(zhuǎn)換流為了將字節(jié)流轉(zhuǎn)換為字符流,JDK提供了轉(zhuǎn)換流,分別是InputStreamReader和OutputStreamWriter,其中,OutputStreamWriter是Writer的子類,它可以將一個(gè)字節(jié)流輸出流包裝成字符輸出流,方便直接寫入字符,而InputStreamReader是Reader的子類,

13、它可以將一個(gè)字節(jié)輸入流包裝成字符輸入流,方便直接讀取字符。通過(guò)轉(zhuǎn)換流進(jìn)行數(shù)據(jù)讀寫的過(guò)程如下圖所示。需要注意的是,在使用轉(zhuǎn)換流時(shí),只能針對(duì)操作文本文件的字節(jié)流進(jìn)行轉(zhuǎn)換,如果字節(jié)流操作的是一張圖片,此時(shí)轉(zhuǎn)換為字符流就會(huì)造成數(shù)據(jù)丟失。第三課時(shí)(ObjectInputStream和ObjectOutputStream、DataInputStream和DatOutputStream、PrintStream、標(biāo)準(zhǔn)輸入輸出)l ObjectInputStream和ObjectOutputStream如果希望永久保存對(duì)象,則可以將對(duì)象轉(zhuǎn)為字節(jié)數(shù)據(jù)寫入到硬盤上,這個(gè)過(guò)程稱為對(duì)象序列化。反之,讀取被序列化數(shù)據(jù)的過(guò)

14、程稱為反序列化。JDK提供了ObjectInputStream和ObjectInputStream兩個(gè)類,這兩個(gè)類分別用于實(shí)現(xiàn)對(duì)象的序列化和反序列化。需要注意的是,被序列化的對(duì)象必須得實(shí)現(xiàn)Serializable接口,否則會(huì)出現(xiàn)NotSerializableException異常。l DataInputStream和DataOutputStream有的時(shí)候只需要存儲(chǔ)對(duì)象的成員數(shù)據(jù),而這些成員數(shù)據(jù)的類型又都是基本數(shù)據(jù)類型,這時(shí),可以使用IO包中提供的另外兩個(gè)數(shù)據(jù)操作流DataInputStream和DatOutputStream。DataInputStream和DatOutputStream是兩

15、個(gè)與平臺(tái)無(wú)關(guān)的數(shù)據(jù)操作流,它們提供了讀寫各種基本類型數(shù)據(jù)的方法。為了保證最終數(shù)據(jù)的正確性,需要保證讀取數(shù)據(jù)的順序和寫數(shù)據(jù)的順序一致。 l PrintStream在Java的IO包中提供了一個(gè)PrintStream類,它提供了一系列用于打印數(shù)據(jù)的print()和println()方法,被稱作打印流。PrintStream可以實(shí)現(xiàn)將基本數(shù)據(jù)類型的數(shù)據(jù)或引用數(shù)據(jù)類型的對(duì)象格式化成字符串后再輸出。具體示例如下:PrintStream ps = new PrintStream(new FileOutputStream(printStream.txt), true);ps.print(這是一個(gè)數(shù)字:);p

16、s.println(19); / 打印數(shù)字l 標(biāo)準(zhǔn)輸入輸出流在System類中定義了三個(gè)常量,這些常量稱為標(biāo)準(zhǔn)輸入輸出流,具體如下:l in:標(biāo)準(zhǔn)輸入流,InputStream類型,用于讀取鍵盤輸入的數(shù)據(jù)l out:標(biāo)準(zhǔn)輸出流,PrintStream類型,用于將數(shù)據(jù)輸出到命令行窗口l err:標(biāo)準(zhǔn)錯(cuò)誤流,PrintStream,用于將應(yīng)用程序運(yùn)行時(shí)的錯(cuò)誤信息輸出到控制臺(tái)有的時(shí)候,程序會(huì)向命令行窗口輸出大量的數(shù)據(jù),由于輸出數(shù)據(jù)滾動(dòng)的太快,會(huì)導(dǎo)致無(wú)法閱讀,這時(shí)可以將標(biāo)準(zhǔn)輸出流重新定向到其它的輸出設(shè)備,重定向流的靜態(tài)方法如下表所示:方法聲明功能描述void setIn(InputStream in)

17、對(duì)標(biāo)準(zhǔn)輸入流重定向void setOut(PrintStream out)對(duì)標(biāo)準(zhǔn)輸出流重定向void setErr(PrintStream out)對(duì)標(biāo)準(zhǔn)錯(cuò)誤輸出重定向第四課時(shí)(管道流、ByteArrayOutputStream和ByteArrayInputStream、CharArrayReader和CharArrayWriter、SequenceInputStream)l 管道流在字節(jié)流中,管道流分為管道輸入流(PipedInputStream)和管道輸出流(PipedOutputStream)。其中,PipedOutputStream用于向管道中寫入數(shù)據(jù),PipedInputStream

18、用于從管道中讀取寫入的數(shù)據(jù)。 同理,字符流中也有一對(duì)用于管道通信的管道輸入流(PipedReader)和管道輸出流(PipedWriter),它們的用法和PipedInputStream、PipedOutputStream相似。l ByteArrayInputStream和ByteArrayOutputStreamByteArrayOutputStream類會(huì)在創(chuàng)建對(duì)象時(shí)就創(chuàng)建一個(gè)byte型數(shù)組的緩沖區(qū),當(dāng)向數(shù)組中寫數(shù)據(jù)時(shí),該對(duì)象會(huì)把所有的數(shù)據(jù)先寫入緩沖區(qū),最后一次性寫入文件。ByteArrayInputStream是從緩沖區(qū)中讀取數(shù)據(jù)。l CharArrayReader和CharArrayW

19、riterCharArrayReader和CharArrayWriter用于將字符型數(shù)據(jù)臨時(shí)存入緩沖區(qū),其中,CharArrayReader是從字符數(shù)組中讀取數(shù)據(jù),CharArrayWriter是在內(nèi)存中創(chuàng)建一個(gè)字符數(shù)組緩沖區(qū)。l SequenceInputStreamSequenceInputStream類可以將幾個(gè)輸入流串聯(lián)在一起,合并為一個(gè)輸入流。當(dāng)通過(guò)這個(gè)流來(lái)讀取數(shù)據(jù)時(shí),它會(huì)依次從所有被串聯(lián)的輸入流中讀取數(shù)據(jù),對(duì)程序來(lái)說(shuō),就好像是對(duì)同一個(gè)流進(jìn)行操作。使用SequenceInputStream合并兩個(gè)流的示例代碼如下所示:SequenceInputStream sis = new Seq

20、uenceInputStream(in1, in2);如果想將多個(gè)流進(jìn)行合并,這時(shí)需要使用SequenceInputStream類的另一個(gè)構(gòu)造方法,具體如下:SequenceInputStream(Enumeraion e)第五課時(shí)(File類、遍歷目錄下文件、刪除文件及目錄、RandomAccessFile)l File類File類用于封裝一個(gè)路徑,這個(gè)路徑可以是從系統(tǒng)盤符開始的絕對(duì)路徑,如:D:filea.txt,也可以是相對(duì)于當(dāng)前目錄而言的相對(duì)路徑,如:srcHello.java。File類內(nèi)部封裝的路徑可以指向一個(gè)文件,也可以指向一個(gè)目錄。創(chuàng)建File對(duì)象的構(gòu)造方法如下表所示:方法聲明

21、功能描述File(String pathname)通過(guò)指定的一個(gè)字符串類型的文件路徑來(lái)創(chuàng)建一個(gè)新的File對(duì)象File(String parent,String child)根據(jù)指定的一個(gè)字符串類型的父路徑和一個(gè)字符串類型的子路徑(包括文件名稱)創(chuàng)建一個(gè)File對(duì)象File(File parent,String child)根據(jù)指定的File類的父路徑和字符串類型的子路徑(包括文件名稱)創(chuàng)建一個(gè)File對(duì)象File類提供了許多方法,用于操作其內(nèi)部封裝路徑指向的文件或者目錄的方法如下表所示: 方法聲明功能描述boolean exists()判斷File對(duì)象對(duì)應(yīng)的文件或目錄是否存在,若存在則返回t

22、ure,否則返回falseboolean delete()刪除File對(duì)象對(duì)應(yīng)的文件或目錄,若成功刪除則返回true,否則返回falseboolean createNewFile()當(dāng)File對(duì)象對(duì)應(yīng)的文件不存在時(shí),該方法將新建一個(gè)此File對(duì)象所指定的新文件,若創(chuàng)建成功則返回true,否則返回falseString getName()返回File對(duì)象表示的文件或文件夾的名稱String getPath()返回File對(duì)象對(duì)應(yīng)的路徑String getAbsolutePath()返回File對(duì)象對(duì)應(yīng)的絕對(duì)路徑(在Unix/Linux等系統(tǒng)上,如果路徑是以正斜線(/)開始,則這個(gè)路徑是絕對(duì)路徑;

23、在Windows等系統(tǒng)上,如果路徑是以從盤符開始,則這個(gè)路徑是絕對(duì)路徑)String getParent()返回File對(duì)象對(duì)應(yīng)目錄的父目錄(即返回的目錄不包含最后一級(jí)子目錄)boolean canRead()判斷File對(duì)象對(duì)應(yīng)的文件或目錄是否可讀,若可讀則返回true,反之返回falseboolean canWrite()判斷File對(duì)象對(duì)應(yīng)的文件或目錄是否可寫,若可寫則返回true,反之返回falseboolean isFile()判斷File對(duì)象對(duì)應(yīng)的是否是文件(不是目錄),若是文件則返回true,反之返回falseboolean isDirectory()判斷File對(duì)象對(duì)應(yīng)的是否是

24、目錄(不是文件),若是目錄則返回true,反之返回falseboolean isAbsolute()判斷File對(duì)象對(duì)應(yīng)的文件或目錄是否是絕對(duì)路徑long lastModified()返回1970年1月1日0時(shí)0分0秒到文件最后修改時(shí)間的毫秒值;long length()返回文件內(nèi)容的長(zhǎng)度String list()列出指定目錄的全部?jī)?nèi)容,只是列出了名稱File listFiles()返回一個(gè)包含了File對(duì)象所有子文件和子目錄的File數(shù)組l File遍歷目錄下的文件在File類中,重載的list()方法用于遍歷指定目錄文件,如果在遍歷過(guò)程中,需要獲取指定類型的文件,則可以使用list(Fil

25、enameFilter filter)方法,其中,參數(shù)FilenameFilter是一個(gè)接口,稱作文件過(guò)濾器,使用list(FilenameFilter filter)方法遍歷目錄文件的步驟如下所示:1、 調(diào)用list()方法傳入FilenameFilter文件過(guò)濾器對(duì)象2、 取出當(dāng)前File對(duì)象所代表目錄下的所有子目錄和文件3、 對(duì)于每一個(gè)子目錄或文件,都會(huì)調(diào)用文件過(guò)濾器對(duì)象的accept(File dir,String name)方法,并把代表當(dāng)前目錄的File對(duì)象以及這個(gè)子目錄或文件的名字作為參數(shù)dir和name傳遞給方法4、 如果accept()方法返回true,就將當(dāng)前遍歷的這個(gè)子目

26、錄或文件添加到數(shù)組中,如果返回false,則不添加。l 刪除文件及目錄在File類中,delete()方法只能刪除指定的文件,如果希望刪除某個(gè)目錄,則需要通過(guò)遞歸的方式將整個(gè)目錄以及其中的文件全部刪除。實(shí)現(xiàn)遞歸的代碼如下所示:public static void deleteDir(File dir) if (dir.exists() / 判斷傳入的File對(duì)象是否存在File files = dir.listFiles(); / 得到File數(shù)組for (File file : files) / 遍歷所有的子目錄和文件if (file.isDirectory() / 如果是目錄,遞歸調(diào)用de

27、leteDir()deleteDir(file); else / 如果是文件,直接刪除file.delete();/ 刪除完一個(gè)目錄里的所有文件后,就刪除這個(gè)目錄dir.delete();l RandomAccessFile在IO包中,提供了一個(gè)類RandomAccesseFile,RandomAccesseFile不屬于流類,但它具有讀寫文件數(shù)據(jù)的功能,可以隨機(jī)地從文件的任何位置開始執(zhí)行讀寫數(shù)據(jù)的操作。RandomAccessFile可以將文件以只讀或者讀寫的方式打開,具體使用哪種方式取決于創(chuàng)建它所采用的構(gòu)造方法,RandomAccessFile的構(gòu)造方法如下表所示:方法聲明功能描述Rand

28、omAccessFile(File file,String mode)參數(shù)file指定被訪問(wèn)的文件RandomAccessFile(String name,String mode)參數(shù)name指定被訪問(wèn)文件的路徑RandomAccessFile類針對(duì)文件的隨機(jī)訪問(wèn)操作,提供了一些用于定位文件位置的方法定位文件位置的方法,如下表所示:方法聲明功能描述long getFilePointer()返回當(dāng)前讀寫指針?biāo)幍奈恢胿oid seek(long pos)設(shè)定讀寫指針的位置,與文件開頭相隔pos個(gè)字節(jié)數(shù)int skipBytes(int n)使讀寫指針從當(dāng)前位置開始,跳過(guò)n個(gè)字節(jié)void setLength(long newLength)設(shè)置此文件的長(zhǎng)度第六課時(shí)(常用字符集、字符編碼和解碼)l 常用字符集字符碼表是一種可以方便計(jì)算機(jī)識(shí)別的特定字符集,它是將每一個(gè)字符和一個(gè)唯一的數(shù)字對(duì)應(yīng)而形成的一張表,下面就來(lái)介紹幾種最常用的字符碼表,如下表所示。ASCII美國(guó)標(biāo)準(zhǔn)信息交換碼,使用7位二進(jìn)制數(shù)來(lái)表示所有的大小寫字母數(shù)字0到9、標(biāo)點(diǎn)符號(hào)、以及在美式英語(yǔ)中使用的特殊控制字符ISO8859-1拉丁碼表,兼容ASCII,還包括了西歐語(yǔ)言、希臘語(yǔ)、泰語(yǔ)、阿拉伯語(yǔ)等GB2312中文碼表,兼容ASCII,每個(gè)英文占1個(gè)字節(jié),中文占2個(gè)字節(jié)(兩個(gè)字節(jié)都為負(fù)數(shù),最高

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論