JAVA 輸入輸出異常線程_第1頁
JAVA 輸入輸出異常線程_第2頁
JAVA 輸入輸出異常線程_第3頁
JAVA 輸入輸出異常線程_第4頁
JAVA 輸入輸出異常線程_第5頁
已閱讀5頁,還剩109頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第九章Java高級編程知識點:流線程

異常處理重點、難點:文件字節(jié)流異常處理和自定義異常線程的創(chuàng)建和運行關鍵詞:

InputStream、OutputStream、PrintStream

FileInputStream、FileOutputStream、

System.in、System.out

運行時異常、非運行時異常Throwable、ExceptionThrow、Throws

Thread、Runnable

一、流、輸入流、輸出流的概念1.關于流的定義不同的教材有不同的說法:流是指在計算機的輸入輸出之間流動的一個數(shù)據(jù)序列,其從數(shù)據(jù)源串行地流向數(shù)據(jù)的目的地;流是傳遞數(shù)據(jù)信息的載體,是程序中數(shù)據(jù)所經(jīng)歷的路徑;

流是一種抽象的發(fā)送和接收數(shù)據(jù)的方法;

流是提供了一條通道的程序,可以使用這條通道把數(shù)據(jù)源中的數(shù)據(jù)傳送到目的地;

流是一組有序的有起點有終點的數(shù)據(jù)集合;

說法不同,但它們都圍繞著數(shù)據(jù)這個元素,考慮的問題是:數(shù)據(jù)數(shù)據(jù)從哪里來?數(shù)據(jù)到哪里去?同時也隱含指出了數(shù)據(jù)怎么來、數(shù)據(jù)怎么去的問題。

例如:全班同學要從桂林去南寧數(shù)據(jù):全班學生數(shù)據(jù)源(數(shù)據(jù)的來源):桂林目的地(數(shù)據(jù)的去處):南寧怎么從桂林來:公路鐵路空中航線怎么到南寧去:公路鐵路空中航線流

進一步按來去方向分類:數(shù)據(jù):data

數(shù)據(jù)源:source

來的方法:

method11method12……..數(shù)據(jù):data目的地:destination

去的方法:

method21method22……..Java輸入流Java輸出流

2.輸入流:將數(shù)據(jù)從數(shù)據(jù)源傳給程序,這個數(shù)據(jù)源可以是文件,內存,或是網(wǎng)絡連接等。

數(shù)據(jù)源程序輸入流

3.輸出流:可將數(shù)據(jù)送到目的地,目的地可以是文件,內存,或是網(wǎng)絡連接等

程序目的地輸出流

數(shù)據(jù)源輸入運算輸出目的地輸入流Java程序設計中,輸入數(shù)據(jù)可以用輸入流從數(shù)據(jù)源中得到,輸出數(shù)據(jù)可以輸出流來輸送到目的地

程序輸出流

Java系統(tǒng)中根據(jù)數(shù)據(jù)的來源和去處的不同,提供了一系列的輸入流和輸出流類,統(tǒng)一組織在java.io包中,編程時利用它們,實現(xiàn)不同的輸入/輸出的數(shù)據(jù)處理。

二、字節(jié)流1、概述

輸入字節(jié)流部分類的繼承關系圖

輸出字節(jié)流部分類的繼承圖m字節(jié)輸入流類:InputStream

字節(jié)輸出流類:OutputStream它們是所有字節(jié)流的父類,是將數(shù)據(jù)以字節(jié)為基本處理單位的流它們是抽象類,實際編程中使用它們的子類

2、相關設計模式

Java的字節(jié)流在第一層子類上采用了適配器(Adapter)模式在第二層子類上采用了裝飾(Decorator)模式。這些模式的使用使得Java的I/O流在使用上具有與眾不同的特點。

1)適配器(Adapter)模式適配器模式類圖

問題:什么情況下使用Adapter模式?兩個不同的類或接口,但功能相同或相近,用適配器模式將兩個類加以轉換,還可以補充源沒有的方法,而目標需要的方法。例:一個老師會講課(只會用中文),也能完成項目工程,另一個工程師會用英語上課,利用他們兩個人來完成用英語上課,同時又完成工程項目.

classTeacher{

Stringname;

publicvoidspeck(){

System.out.println(“這個技術的難點是:。。。。");}publicvoiddoProject(){

System.out.println(“完成了項目工程");}}classEngineer{

Stringname;

publicvoidspeck(){

System.out.println(“thedifficultyofthisTechnologyis:…..");}}

classAdaextendsTeacher{Engineerobj;

intage;

publicvoidspeck(){

obj=newEngineer();

obj.speck();

obj.doProject();}

}

publicclassUser{

publicstaticvoidmain(String

args[]){

Teachersm=newAda();

sm.speck();

sm.doProject();}}

publicclassUser1{

publicstaticvoidmain(String

args[]){

Teachersm=newTeacher();

sm.speck();

sm.doProject();}}

FileInputStream是一個適配器類適配器FileInputStream類圖

2)裝飾(Decorator)模式

DataInputStream等類是具體的裝飾類

DataOutputStream等類是具體的裝飾類

看下圖:

兼職的學生:如果要增加學生的功能或職責,可采用裝飾模式進行擴展

三。字節(jié)流的使用

1.InputStream與OutputStream

InputStream是字節(jié)輸入流,它包含的三面的信息是:數(shù)據(jù):字節(jié)用于程序從數(shù)據(jù)源中獲取數(shù)據(jù)主要方法:

InputStream類的主要方法:abstractintread():從輸入流中讀取一個字節(jié),返回0到255之間的一個數(shù),遇到結尾返回-1。int

read(byteb[]):從輸入流中讀取長度為b.length的字節(jié)數(shù)到b,并返回讀取字節(jié)數(shù)。遇到結尾返回-1。intread(byteb[],int

off,int

len):從輸入流中讀取長度為len的字節(jié)數(shù)到off開始的數(shù)組b,并返回讀取字節(jié)數(shù)。遇到結尾返回-1。

OutputStream是字節(jié)輸出流,它包含的三面的信息是:數(shù)據(jù):字節(jié)用于將數(shù)據(jù)送到目的地主要方法:

OutputStream類的主要方法:abstractvoidwrite(intb):將指定的字節(jié)b寫入輸出流,如果b>255,則只寫入其低位字節(jié)。voidwrite(byteb[]):把字節(jié)數(shù)組b中的b.length個字節(jié)寫入輸出流。voidwrite(byteb[],int

off,int

len):把字節(jié)數(shù)組b中off開始長度為len個字節(jié)寫入輸出流。

2。File類:并不屬于流,但主要應用于流技術中,所以Java把它放入了java.io包中

計算機文件基本上分為二種:二進制文件和ASCII碼(也稱純文本)文件,除了純文本文件外,其它的所有文件都是二進形式的文件,例如圖形文件JPG、GIF等及文字處理文件如word,Excel等文件等都屬于二進制文件,這些文件含有特殊的格式及計算機代碼,需要專門的軟件才能打開進行查看。而文本文件則可由任意軟件處理。

File類

構造方法:

File(Stringname)

File(String

path,Stringname)

File(File

file,Stringfilename)

3。FileInputStream和FileOutputStream

FileInputStream是文件字節(jié)輸入流,它包含的三方面的信息是:數(shù)據(jù):字節(jié)用于程序從數(shù)據(jù)源---文件中獲取數(shù)據(jù)主要方法:重寫或繼承于父類

主要構造方法:

FileInputStream(Stringname)

FileInputStream(File

fileObject)它們有可能引發(fā)FileNotFoundException異常

例讀取文本文件的內容并顯示輸出思考過程:初始建模

為了滿足“開---閉”原則,進一步抽象

例9_1

importjava.io.*;publicclassReadTextFile{StringfileName;//要讀取的文件名

publicReadTextFile(){}publicReadTextFile(Strings){

fileName=s;

}

publicStringread1(){

try{Filef=newFile(fileName);

FileInputStreamfin=new

FileInputStream(f);byte[]b=newbyte[(int)f.length()];Strings=null;

fin.read(b);s=newString(b);returns;}catch(Exception

e){returnnull;}}

publicStringread1(Stringfn){try{Filef=newFile(fn);

FileInputStreamfin=newFileInputStream(f);byte[]b=newbyte[(int)f.length()];Strings=null;

fin.read(b);s=newString(b);returns;}catch(IOException

e){returnnull;}}}

publicStringoutPut(){return("文件"+fileName+"的內容是:"+read1());}}

publicclassUser{

publicstaticvoidmain(String

args[]){

try{

ReadTextFile

obj=newReadTextFile("a.txt");

System.out.println(obj.outPut());

ReadTextFileobj1=newReadTextFile("User.java");Strings1=obj1.read1();System.out.println(s1);}catch(Exceptione){}}}

注意:

1.從文件輸入流中讀文本文件到顯示器輸出的方法

2.一般只有純文本文件才考慮采用上述方法輸出到顯示器進行查看,二進制文件不能直接地輸出到顯示器,因這它們是需要特殊的軟件才能打開的。

如果上例把Filef=newFile(“a.txt”);改成Filef=newFile(“a.doc”);會有什么輸出結果?

FileOutputStream類

OutputStream是字節(jié)輸出流,它包含的三面的信息是:數(shù)據(jù):字節(jié)用于將數(shù)據(jù)送到目的地---文件主要方法:重寫或繼承了父類的方法

主要的構造方法:FileOutputStream(Stringname)FileOutputStream(String

name,booleanappend)FileOutputStream(File

fileObj)它們有可能引發(fā)IOException或SecurityException

例將文本文件的內容寫入文件思考過程:初始建模

importjava.io.*;publicclassWriteTextFile{StringwriteFileName;

publicWriteTextFile(){}publicWriteTextFile(Stringsout){

writeFileName=sout;}

publicvoidgetOutPut(Strings){

try{Filef=newFile(writeFileName);

FileOutputStream

fout=new

FileOutputStream(f);

fout.write(s.getBytes());

fout.close();}

catch(IOExceptione){}}

publicStringread1(Stringfn){try{

FileInputStreamfin=new

FileInputStream(fn);byte[]b=newbyte[(int)f.length()];Strings=null;

fin.read(b);s=newString(b);returns;}catch(IOException

e){returnnull;}}

4.DataInputStream和

DataOutputStream

它可以按java的數(shù)據(jù)類型讀取數(shù)據(jù)構造方法:

DataInputStream(InputStreamins);

DataOutputStream(OutputStreamouts);

DataInputStream主要方法:

int

readInt()bytereadByte()longreadLong()StringreadUTF()

boolean

readBoolean()

int

readInt()floatreadFloat()shortreadShort()charreadChar()

DataOutputStream主要方法:

voidwrite(byteb[])voidwriteInt(intb)voidwriteShort(shortb)voidwriteLong(longl)voidwriteChar(charc)voidwriteFloat(floatf)voidwriteDouble(doublef)voidwriteUTF(Strings)voidwriteBoolean(booleanb)

例:將電話號碼(長整型數(shù))存入文件中

importjava.io.*;publicclassWriteFile{Strings;//文件名

publicWriteFile(){}publicWriteFile(Stringsout){

s=sout;}

publicvoidwrite1(longphone_number){try{Filef=newFile(s);

OutputStream

fout=newFileOutputStream(s);

DataOutputStream

dout=new

DataOutputStream(fout);

dout.writeLong(phone_number);

dout.close();}

catch(IOExceptione){}}

publicvoidwrite1(StringfileName,longph){try{Filef=newFile(fileName);

OutputStream

fout=newFileOutputStream(f);

DataOutputStream

dout=newDataOutputStream(fout);

dout.writeLong(ph);

dout.close();}

catch(IOExceptione){}}publiclongread1(StringfileName){longph=0;try{Filef=newFile(fileName);

InputStreamfin=newFileInputStream(f);

DataInputStreamdin=newDataInputStream(fin);ph=din.readLong();

din.close();}

catch(IOExceptione){}

finally{returnph;}}}

importjava.util.*;publicclassUseWriteFile{

publicstaticvoidmain(String

args[]){

try{Scannersc=newScanner(System.in);

System.out.println("請輸入你要存入文的內容:");Stringinf=sc.nextLine();Longph=Long.parseLong(inf);

WriteFile

obj=newWriteFile("a.dat");obj.write1(ph);

System.out.println("已存入文件");System.out.println(obj.read1("a.dat"));}catch(Exceptione){}}}

5。標準輸入/輸出流對象

Java的System類中定義的類變量:

publicstaticPrintStreamout;publicstaticInputStreamin;

System.in:它是由系統(tǒng)自動創(chuàng)建的InputStream的一個輸入流對象,用來接收鍵盤的輸入的數(shù)據(jù)。System.out:它是OutputStream的子類PrintStream的一個輸出流對象,能夠輸出數(shù)據(jù)到顯示器。

.字節(jié)輸出流PrintStream:可以輸出各種類型的數(shù)據(jù)

構造方法:

PrintStream(OutputStreamout);

在其父類OutputStream上增加的主要方法:

voidprintln()

voidprintln(booleanb)

voidprintln(charc)

voidprintln(char[]c)

voidprintln(doubled)

voidprintln(floatf)

voidprintln(inti)

voidprintln(longl)

voidprintln(Objectobj)

voidprintln(Stringstr)將各種類型的數(shù)據(jù)輸出到輸出流

四.序列化(串行化或可持續(xù)化)

序列化是把一個對象的狀態(tài)保存起來;從該區(qū)域讀取對象狀態(tài)即稱為反序列化。實現(xiàn)了Serializable接口的類的對象才可以序列化。

Serializable接口中沒有任何方法,只是做為一個標記來指示該類的對象可以序列化

主要由以下兩個類實現(xiàn):

ObjectOutputStream

ObjectInputStream

向流寫入對象和從流中讀取對象

構造方法:

ObjectOutputStream(OutputStream

os);

ObjectInputStream(InputStreamis);

ObjectInputStream主要方法:

ObjectreadObject()

ObjectOutputStream主要方法:

writeObject(Object

obj)

例將學生信息的內容寫入文件思考過程:初始建模

importjava.io.*;classStudentimplementsSerializable{ Stringname;String

password;intage;publicStudent(){ Stringname="2";Stringpassword="2";intage=20; } publicStudent(String

name,String

password,intage){

=name;

this.password=password;

this.age=age; } publicvoidsetPassword(Stringpass){

this.password=pass; }publicStringgetPassword(){ returnpassword; }publicvoidsetName(Stringname){

=name; }publicStringgetName(){ returnname; }publicvoidsetAge(intage){

this.age=age; }publicint

getAge(){ returnage; }}

publicclassUseObjectStream{publicObjectread1(StringfileName){try{

FileInputStream

fis=newFileInputStream(fileName);

ObjectInputStream

ois=newObjectInputStream(fis); returnois.readObject();}

catch(Exception

e){returnnull;}

}publicvoidwrite1(StringfileName,Object

obj){try{

FileOutputStream

fos=newFileOutputStream(fileName,true);

ObjectOutputStream

obs=newObjectOutputStream(fos);

obs.writeObject(obj);}

catch(Exceptione){} }}

importjava.io.*;publicclassUser{ publicstaticvoidmain(String

args[]){ Students1=newStudent("Tom","111",21);

UseObjectStream

vip=newUseObjectStream(); try{ vip.write1("customer.obj",s1);

System.out.println("用戶信息寫入文件"); Studentvip1=(Student)vip.read1("customer.obj");

System.out.println("文件中的信息為:");

System.out.println("用戶名:"+vip1.getName());

System.out.println("密碼:"+vip1.getPassword());

System.out.println("年齡:"+vip1.getAge());

} catch(Exceptione){

e.printStackTrace(); }}}

五.Scanner類Scanner是JDK1.5新增的一個類,是java.util包中的類。該類用來實現(xiàn)用戶的輸入;

構造方法:(1)Scanner(InputStreamin)

(2)Scanner(Filefile)

主要方法:將控制臺輸入信息掃描為相應的數(shù)值

Stringnext()StringnextLine()

boolean

nextBoolean()

bytenextByte()

doublenextDouble()

floatnextFloat()

int

nextInt()

longnextLong()

shortnextShort()

異常相關知識一.引入class旅游{publicstaticvoidmain(String[]args){

買票;//可能買不到坐車;//可能路途中車壞了

住宿;//可能找不到住處}}問題:未對可能的出現(xiàn)的問題進行處理,此時如果出現(xiàn)問題,旅游將會被迫終止.class旅游{publicstaticvoidmain(String[]args){

買票;//可能買不到

if(買不到){……}

坐車;//可能路途中車壞了

if(車壞了){……..}

住宿;//可能找不到住處

if(找不到住處){……..}}}

缺點:1)模糊了問題求解的邏輯,要考慮大量非正常的情況并做出處理,有時這種情況出現(xiàn)的機會很少,這使得程序設計變得復雜。2)程序員對非正常問題的處理的能力在很大程度上影響編程工作效率和質量。3)層層處理太麻煩,程序可讀性降低。二、異常程序設計時把可以預見的非正?,F(xiàn)象稱為異常。這種異常程序是可以處理的。

在完成特定功能的同時,具有完善的異常處理能力才是合格的,具有健壯性的程序。

1.Java的異常處理異常處理就是允許用戶有排除錯誤的機會,或至少能給出適當?shù)某鲥e提示信息。

Java中定義了很多異常類,用來描述經(jīng)常較容易發(fā)生的錯誤,當程序運行時發(fā)生了該類異常,就產(chǎn)生一個收集了異常信息的異常對象,我們通過捕捉或拋出來處理這個對象。

通過異常處理機制處理程序中可能發(fā)生的問題:

class旅游{publicstaticvoidmain(String[]args){try{買票;

坐車

住宿;}

catch(Exceptione){給出各種錯誤處理的信息和處理方法等;}}}

這些類都繼承自java.lang.Throwable類。Throwable類有兩個子類:Error和Exception,它們分別表示兩種異常類型?!?Error類及其子類通常用來描述Java運行系統(tǒng)中的內部錯誤以及資源耗盡的錯誤。Error表示的異常是比較嚴重,僅靠修改程序本身是不能恢復執(zhí)行的,被稱為致命異常類。例如,前面所說的旅游,因為想去旅游的人在旅途中沒有錢了,或者受傷了…….此時就相當于發(fā)生了一個Error異常。在大多數(shù)情況下,發(fā)生該異常時,建議終止程序。Exception類可稱為非致命異常類,在開發(fā)Java程序過程中進行的異常處理,主要就是針對該類及其子類的異常處理。對程序中可能發(fā)生的該類異常,應該盡可能進行處理,而不應該在異常發(fā)生后終止程序。Exception類又分為兩種異常類型:運行時異常(RuntimeException)非運行時異常

三、異常類Exception

構造函數(shù)

publicException();publicException(Strings);

常用方法:publicStringtoString()publicStringgetMessage()

1.RuntimeException可以預料,但不知何時何地發(fā)生,例如:旅游過程中坐公共汽車不買票,吃飯不給錢……這種異常一般不用處理,處理的開銷太大,如果發(fā)生Java虛擬機系統(tǒng)會自動處理。

常見的RuntimeException異常如下表所示:異常類名稱異常類含義ArithmeticException算術異常類ArrayIndexOutOfBoundsException數(shù)組下標越界異常類ArrayStoreException將與數(shù)組類型不兼容的值賦值給數(shù)組元素時拋出的異常ClassCastException類型強制轉換異常類IndexOutOfBoundsException當某對象(如數(shù)組或字符串)的索引超出范圍時拋出該異常NegativeArraySizeException建立元素個數(shù)為負數(shù)的數(shù)組異常類NullPointerException空指針異常類NumberFormatException字符串轉換為數(shù)字異常類SecurityException小應用程序(Applet)執(zhí)行瀏覽器的安全設置禁止的動作時拋出的異常StringIndexOutOfBoundsException字符串索引超出范圍異常2。非運行時異??梢灶A料,知道何時何地可能會發(fā)生,如:旅游過程中買不到票,找不到住處……,出現(xiàn)這種情況時要求通過try…catch捕獲或由throws拋出。Java語言中常見的非運行時異常如下表所示:異常類名稱異常類含義ClassNotFoundException未找到相應類異常EOFException文件已結束異常類FileNotFoundException文件未找到異常類IllegalAccessException訪問某類被拒絕時拋出的異常InstantiationException試圖通過newInstance()方法創(chuàng)建一個抽象類或抽象接口的實例時拋出該異常IOException輸入輸出異常類NoSuchFieldException字段未找到異常NoSuchMethodException方法未找到異常SQLException操作數(shù)據(jù)庫異常類四、異常處理的方式

對運行異??梢圆蛔鎏幚恚簿褪钦f程序設計時不需要增加異常處理語句,Java虛擬機系統(tǒng)會自動進行處理;但是如果你能確定它發(fā)生的時間和地點,你也可以對它進行處理。

對非運行時異常,則需要進行處理,否則編譯通不過。

1.捕捉異常:

程序設計時使用try-catch-finally語句進行處理

語法格式:try{代碼0(可能產(chǎn)生異常的代碼)}catch(例外類1e){例外處理代碼1;}…catch(例外類ne){例外處理代碼n;}finally{必須執(zhí)行的代碼;}

importjava.io.*;classTryCatchTest{publicstaticvoidmain(String

agrs[]){Filefile=newFile("abc.txt");

inta[]={1,2};try{System.out.println(3/0);}

catch(ArithmeticExceptione){System.out.println("3/0");

System.out.println("ThisisArthmeticException");}try{System.out.println(a[2]);}

catch(ArrayIndexOutOfBoundsExceptione){System.out.println("a[2]");

System.out.println("ThisisArrayIndexOutOfBoundsException");}

try{FileInputStreamfin=newFileInputStream(file);}

catch(FileNotFoundExceptione){

System.out.println("abc.txtisnotfound");

System.out.println("ThisisFileNotFoundException");}

catch(IOExceptione){

System.out.println("ThisisIOException");}

}}2.通過throws語句聲明拋出,交給調用它的方法進行處理

這時方法的定義格式:

方法名([參數(shù)表])throws例外名列表

publicclassPeople{ publicint

check(String

strage)throwsException{

intage=Integer.parseInt(strage);

if(age<0) thrownewException(“年齡不能為負數(shù)!”); returnage; }}classUsePeople{ publicstaticvoidmain(String[]args){ try{ Peoplep=newPeople();

int

myage=p.check("-101");

System.out.println(myage); }catch(Exceptione){

System.out.println("數(shù)據(jù)邏輯錯誤!");

System.out.println("原因:"+e.getMessage()); } }}五、自定義異常

步驟:1、創(chuàng)建繼承Exception的異常類,主要定義構造方法和重寫toString()方法,目的是給出適當?shù)某鲥e提示信息,讓用戶有機會排除錯誤。

publicclassE1extendsException{privateStringmessage;publicE1(Strings){message=s;}publicStringtoString(){returnmessage;}2、定義某一個方法在一定條件下產(chǎn)生這種異常對象,并用throws語句拋出該對象。

方法定義格式:

[修飾符]返回類型方法名(參數(shù)。。。)throws自定義異常

{if(…..)throw(自定義的異常對象)……}

3、其它方法調用該方法例:

testimportjava.io.*;classMyExp1extendsException{publicStringtoString(){return"自已定義的異常產(chǎn)生了";}}publicclassTest{publicvoidlogin(Stringa)throwsMyExp1{if(a.equals("李明")){MyExp1e=newMyExp1();throwe;}

}publicstaticvoidmain(String

arg[]){try{Testt1=newTest();t1.login("李明");}catch(MyExp1e){System.out.println(e.toString());}}}

線程相關知識

一、引入看一個例子:

classParent{StringpName;publicStringdoHousework(String

dosomething){return(dosomething);}}

publicclassStudent{StringsName;publicStringdoHomework(Stringsubject){return“完成”+subject;}}

classUseStudent{ publicstaticvoidmain(String

args[]){ Studenta=newStudent();

a.sName="李小明";Parentb=newParent();

b.pName="李大明";

System.out.println(a.doHomework(“語文作業(yè)!”));

System.out.println(b.doHousework(“拖地板"));}}二、線程的創(chuàng)建

Java語言中,線程也是一種對象,但并非任何對象都可以成為線程,只有實現(xiàn)Runnable接口或繼承了Thread類的對象才能成為線程。

兩種線程的實現(xiàn)方法:1.繼承Thread類

classParentextendsThread{StringpName;publicStringdoHousework(String

dosomething){return(dosomething);}

publicvoidrun(){try{

System.out.println(pName+doHousework(“拖地板"));

Thread.sleep(1000); }catch(Exceptione){

e.printStackTrace(); }}}

publicclassStudentextendsThread{StringsName;

publicStringdoHomework(Stringsubject){return"

溫馨提示

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

評論

0/150

提交評論