資源描述:
《[java入門學(xué)習(xí)]第9章java輸入輸出操作》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、第九章Java輸入輸出操作9.1Java輸入輸出流所有的程序語言都提及與本機(jī)文件系統(tǒng)交互的方式;Java也不例外。我們將看看Java是怎樣處理標(biāo)準(zhǔn)文件輸入輸出的(包括stdin,stout,stderr)。當(dāng)你在網(wǎng)絡(luò)上開發(fā)小程序時(shí),你必須注意直接文件輸入輸出是不安全因素的關(guān)鍵。大多數(shù)用戶設(shè)置他們的瀏覽器,可讓你自由的訪問他們的文件系統(tǒng),但有的不讓你訪問。當(dāng)然,如果你開發(fā)你內(nèi)部的應(yīng)用程序,你也許需要直接訪問文件。標(biāo)準(zhǔn)輸入輸出Unix的用戶,或其他基于命令行系統(tǒng)的用戶(如DOS),都知道標(biāo)準(zhǔn)輸入輸出的含義。標(biāo)準(zhǔn)輸入文件是鍵盤,標(biāo)準(zhǔn)輸出文件是你的終端屏幕。標(biāo)準(zhǔn)錯(cuò)誤輸出文件
2、也指向屏幕,如果有必要,它也可以指向另一個(gè)文件以便和正常輸出區(qū)分。系統(tǒng)類Java通過系統(tǒng)類達(dá)到訪問標(biāo)準(zhǔn)輸入輸出的功能。上面提到的三個(gè)文件在這個(gè)系統(tǒng)類中實(shí)現(xiàn):StdinSystem.in作為InputStream類的一個(gè)實(shí)例來實(shí)現(xiàn)stdin,你可以使用read()和skip(longn)兩個(gè)成員函數(shù)。read()讓你從輸入中讀一個(gè)字節(jié),skip(longn)讓你在輸入中跳過n個(gè)字節(jié)。StoutSystem.out作為PrintStream來實(shí)現(xiàn)stdout,你可以使用print()和println()兩個(gè)成員函數(shù)。這兩個(gè)函數(shù)支持Java的任意基本類型作為參數(shù)。Stde
3、rrSystem.err同stdout一樣實(shí)現(xiàn)stderr。象System.out一樣,你可以訪問PrintStream成員函數(shù)。9.2標(biāo)準(zhǔn)輸入輸出例子importjava.io.*classmyCat{publicvoidmain(Stringargs[])throwsIOException{intb;intcount=0;while((b=System.in.read())!=-1){count++;System.out.print((char)b);}System.out.println();//blanklineSystem.err.println("cou
4、nted"+count+"totalbytes.");}}9.3普通輸入輸出類除了基本的鍵盤輸入和屏幕輸出外,我們還需要聯(lián)系文件的輸入輸出。我們將學(xué)習(xí)下面幾個(gè)類:FileInputStream,DataInputStream,F(xiàn)ileOutputStream,DataOutputStream。作為參考,再列出特定應(yīng)用的類:PipedInputStream,BufferedInputStream,PushBackInputStream,StreamTokenizer,PipedOutputStream,BufferedOutputStream,RandomAccess
5、File我們不在此討論這些類,但你可以在JAVA_HOME/src/java/io目錄里查看每個(gè)類的成員函數(shù)定義。9.4文件在我們進(jìn)行文件操作時(shí),需要知道關(guān)于文件的信息。File類提到了成員函數(shù)來操縱文件和獲得文件的信息。9.4.1創(chuàng)建一個(gè)新的文件對(duì)象你可用下面三個(gè)方法來創(chuàng)建一個(gè)新文件對(duì)象:FilemyFile;myFile=newFile("etc/motd");或myFile=newFile("/etc","motd");//moreusefulifthedirectoryorfilenamearevariables或FilemyDir=newfile("/et
6、c");myFile=newFile(myDir,"motd");這三種方法取決于你訪問文件的方式。例如,如果你在應(yīng)用程序里只用一個(gè)文件,第一種創(chuàng)建文件的結(jié)構(gòu)是最容易的。但如果你在同一目錄里打開數(shù)個(gè)文件,則第二種或第三種結(jié)構(gòu)更好。9.4.2文件測(cè)試和使用創(chuàng)建了一個(gè)文件對(duì)象,你便可以使用以下成員函數(shù)來獲得文件相關(guān)信息:文件名:StringgetName(),路徑:StringgetPath()絕對(duì)路徑:StringgetAbslutePath();重命名:booleanrenameTo(FilenewName)。文件測(cè)試:booleanexists(),boolean
7、canWrite(),booleancanRead(),booleanisFile(),booleanisDirectory(),booleanisAbsolute()。一般文件信息:longlastModified(),longlength()。目錄用法:booleanmkdir(),String[]list()。9.4.3文件信息獲取例子程序這里是一個(gè)獨(dú)立的顯示文件的基本信息的程序,文件通過命令行參數(shù)傳輸:importjava.io.*;classfileInfo{FilefileToCheck;publicstaticvoidmain(Stringargs