




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第九章輸入輸出操作及文本界面應(yīng)用程序第一頁,共四十五頁,2022年,8月28日1命令行參數(shù)main()方法的參數(shù)是一個(gè)字符串類型的數(shù)組。Java虛擬機(jī)通過程序入口main()方法執(zhí)行程序時(shí),會(huì)自動(dòng)創(chuàng)建一個(gè)字符串類型的數(shù)組,將程序執(zhí)行時(shí)輸入的命令行參數(shù)放在數(shù)組中,并將數(shù)組的地址賦給main()的參數(shù)。第二頁,共四十五頁,2022年,8月28日例classTest{publicstaticvoidmain(Stringaa[]){for(inti=0;i<aa.length;i++)System.out.println(aa[i]);}}第三頁,共四十五頁,2022年,8月28日常見操作字符串操作:String類數(shù)學(xué)計(jì)算:Math類,提供了各種靜態(tài)方法進(jìn)行各種數(shù)學(xué)運(yùn)算?;緮?shù)據(jù)類型操作:Java為每一種基本數(shù)據(jù)類型定義了一個(gè)類,以對(duì)基本數(shù)據(jù)類型進(jìn)行操作,這些類稱為type-wrapper類。這些類的構(gòu)造器都是將相應(yīng)的基本類型作為參數(shù)傳入即可。第四頁,共四十五頁,2022年,8月28日包裝類數(shù)據(jù)類型類基本數(shù)據(jù)類型類BooleanbooleanCharactercharDoubledoubleFloatfloatIntegerintLonglongShortshortBytebyte第五頁,共四十五頁,2022年,8月28日集合類常用的數(shù)據(jù)結(jié)構(gòu):集合、列表、映射,這些接口和類都包含在包java.util中。JAVA集合框架(JavaCollectionsFramework,JCF)提供了處理一組對(duì)象標(biāo)準(zhǔn)而高效的解決方案。Collection接口是整個(gè)JAVA集合框架的基石,定義了集合框架中一些基本的方法。常用集合接口:Collection、List、Set、Map、Iterator常用集合類:ArrayList、Vector、LinkedList、HashSet、HashMap第六頁,共四十五頁,2022年,8月28日集合與列表集合:集合:無順序,無重復(fù)元素接口Set類HashSet列表:列表將各個(gè)對(duì)象按照一定的順序組織起來,同一個(gè)對(duì)象可在表中插入多次Java中為列表定義了一個(gè)接口List,常用的表有ArrayList、Vector等。例:MySet.java,MyList.java第七頁,共四十五頁,2022年,8月28日Iterator接口Iterator是一個(gè)接口,集合、列表都有個(gè)方法iterator(),該方法返回類型為Iterator類型,可以將集合、列表中的元素一個(gè)個(gè)列舉出來。Iterator中常用的方法有兩個(gè):next()方法和hasNext()方法。例:MyListIt.java第八頁,共四十五頁,2022年,8月28日映射(Map)與排序Map是一個(gè)接口,用以保存對(duì)象之間的映射關(guān)系。常用的類是HashMap,通過put()方法將兩個(gè)對(duì)象的映射關(guān)系放進(jìn)去,通過get()方法將所存放的映射關(guān)系取出。例:MyMap.javaJava中最簡單的排序方法是使用Arrays類的靜態(tài)方法sort。該方法可以對(duì)各種類型的數(shù)組進(jìn)行排序。第九頁,共四十五頁,2022年,8月28日系統(tǒng)屬性通過System類的靜態(tài)方法getProperties返回一個(gè)Properties對(duì)象,getProperty返回某個(gè)屬性的值。
例如:Propertiesprops=System.getProperties();System.getProperty("path.separator");第十頁,共四十五頁,2022年,8月28日系統(tǒng)屬性系統(tǒng)類中管理了一組有關(guān)當(dāng)前運(yùn)行環(huán)境的屬性key/value對(duì)。例如:path.separator :file.separator /user.home /home/bashamjava.specification.vendor SunMicrosystemsInc.user.language basham第十一頁,共四十五頁,2022年,8月28日文件是許多程序的基本數(shù)據(jù)源和數(shù)據(jù)宿主,是保存永久數(shù)據(jù)和共享信息的媒體。java.io包中定義了一個(gè)File類來專門處理文件,并獲取文件的有關(guān)信息。Java語言中通過File類來建立與磁盤文件的聯(lián)系。File類用來獲取或設(shè)置文件或目錄的屬性,但不支持從文件讀取數(shù)據(jù)或者往文件里寫數(shù)據(jù)。在Java中,目錄也被當(dāng)作文件,可以用list方法列出目錄中的文件名。例:FileTest.javaFile類第十二頁,共四十五頁,2022年,8月28日File類的功能十分強(qiáng)大,它可以訪問指定文件的所有屬性,包括文件名稱、文件長度、文件的最后修改時(shí)間等,同時(shí)還可以利用File類來建立文件對(duì)象、刪除文件和改變文件名稱等。創(chuàng)建文件對(duì)象有三種構(gòu)造方法。File類構(gòu)造方法File類具有下面三種構(gòu)造函數(shù):
File(Stringpath);
File(Fileparent,Stringname);
File(Stringpath,Stringname);其中參數(shù)如下所示:
Stringpath——指定的路徑;
Stringname——執(zhí)行的文件名;第十三頁,共四十五頁,2022年,8月28日publicStringgetName()得到文件名publicStringgetPath()返回文件路徑publicStringgetAbsolutePath()返回文件絕對(duì)路徑publicStringgetCanonicalPath()throwsIOException
返回文件的規(guī)范路徑publicStringgetParent()返回文件的父目錄publicbooleanexists()判斷文件是否存在publicbooleancanWrite()判斷文件是否可寫publicbooleancanRead()判斷文件是否可讀publicbooleanisFile()判斷對(duì)象是否是文件publicbooleanisDirectory()判斷對(duì)象是否是目錄
File類的有關(guān)方法第十四頁,共四十五頁,2022年,8月28日publicnativebooleanisAbsolute()
如果文件名為絕對(duì)名則返回真publiclonglastModified()返回文件最后修改日期publiclonglength()返回文件長度publicbooleanmkdir()創(chuàng)建目錄publicbooleanrenameTo(Filedest)重命名文件publicbooleanmkdirs()創(chuàng)建目錄及子目錄publicString[]list()列出目錄下的所有文件和目錄publicString[]list(FilenameFilterfilter)
列出目錄下的指定文件publicbooleandelete()刪除文件對(duì)象publicinthashCode()為文件創(chuàng)建散列代碼publicbooleanequals(Objectobj)判斷是否同對(duì)象obj相等publicStringtoString()返回文件對(duì)象的字符串描述
第十五頁,共四十五頁,2022年,8月28日比較操作兩種比較操作:==和equals()1、簡單類型簡單類型不是對(duì)象,只能用==進(jìn)行比較,使用==時(shí)只要兩端的值相等即返回true。第十六頁,共四十五頁,2022年,8月28日參考類型參考類型可用==和equals()進(jìn)行比較。由于參考類型中存放的都是對(duì)象的地址,因此只有指向同一對(duì)象才返回true。若參考類型的值為null,用==比較返回true。但用equals()方法則產(chǎn)生異常,因?yàn)檫€沒有對(duì)象,無法執(zhí)行equals()方法。第十七頁,共四十五頁,2022年,8月28日特殊的類對(duì)于Vector類,用equals()作比較只要兩邊元素對(duì)應(yīng)值和順序相同就返回true。對(duì)于String,Date,File及8種基本類型類的包裝類,使用==作比較時(shí),指向同一個(gè)對(duì)象為true,而使用equals()方法作比較時(shí),只要兩邊的值和類型相同即為true。第十八頁,共四十五頁,2022年,8月28日流概念及JAVA中的流類鍵盤輸入和屏幕輸出處理流基本文件輸入輸出文件隨機(jī)讀寫對(duì)象流輸入輸出流第十九頁,共四十五頁,2022年,8月28日流概念Java使用流的機(jī)制實(shí)現(xiàn)輸入輸出操作。流:是一個(gè)數(shù)據(jù)序列。有兩種流:1.輸入流:通過打開一個(gè)到數(shù)據(jù)源(文件、內(nèi)存或網(wǎng)絡(luò)端口上的數(shù)據(jù))的輸入流,程序可以從數(shù)據(jù)源上順序讀取數(shù)據(jù)。2.輸出流:通過打開一個(gè)到目標(biāo)的輸出流,程序可以向外部目標(biāo)順序?qū)憯?shù)據(jù)。第二十頁,共四十五頁,2022年,8月28日讀數(shù)據(jù)的邏輯為:openastreamwhilemoreinformationreadinformationclosethestream寫數(shù)據(jù)的邏輯為:openastreamwhilemoreinformationwriteinformationclosethestream第二十一頁,共四十五頁,2022年,8月28日J(rèn)ava用于輸入輸出流的類按所讀寫的數(shù)據(jù)類型分兩類:字符流類(CharacterStreams)字符流類用于向字符流讀寫16位二進(jìn)制字符。
字節(jié)流類(ByteStreams)字節(jié)流類用于向字節(jié)流讀寫8位二進(jìn)制的字節(jié)。一般地,字節(jié)流類主要用于讀寫諸如圖象或聲音等的二進(jìn)制數(shù)據(jù)。第二十二頁,共四十五頁,2022年,8月28日J(rèn)ava用于輸入輸出流的類java.io中的基本流類:說明:它們是抽象類,不能直接創(chuàng)建對(duì)象。第二十三頁,共四十五頁,2022年,8月28日InputStream方法基本方法:intread()intread(byte[]buffer)intread(byte[]buffer,intoffset,intlength)其他方法:voidclose()intavailable()longskip(longn)第二十四頁,共四十五頁,2022年,8月28日OutputStream方法基本方法:voidwrite(intc)voidwrite(byte[]buffer)voidwrite(byte[]buffer,intoffset,intlength)其他方法:voidclose()voidflush()第二十五頁,共四十五頁,2022年,8月28日Reader方法基本方法:intread()intread(char[]cbuf)intread(char[]cbuf,intoffset,intlength)其他方法:voidclose()booleanready()longskip(longn)第二十六頁,共四十五頁,2022年,8月28日Writer方法基本方法:voidwrite(intc)voidwrite(char[]cbuf)voidwrite(char[]cbuf,intoffset,intlength)voidwrite(Stringstring)voidwrite(Stringstring,intoffset,intlength)其他:voidclose()voidflush()第二十七頁,共四十五頁,2022年,8月28日InputStreamClass的繼承關(guān)系第二十八頁,共四十五頁,2022年,8月28日OutputStreamClass的繼承關(guān)系第二十九頁,共四十五頁,2022年,8月28日ReaderClass的繼承關(guān)系第三十頁,共四十五頁,2022年,8月28日WriterClass的繼承關(guān)系第三十一頁,共四十五頁,2022年,8月28日鍵盤輸入和屏幕輸出Java中對(duì)應(yīng)鍵盤輸入的輸入流為System.in,對(duì)應(yīng)屏幕輸出的輸出流為System.out。in和out都是System的類變量,in的類型為InputStream類型,可以使用read()方法進(jìn)行讀取。out的類型為PrintStream類型,經(jīng)常使用方法print()和println()。System.in的read()方法一次只能讀取一個(gè)字符或按照byte類型的數(shù)組來讀取。第三十二頁,共四十五頁,2022年,8月28日例importjava.io.*;classIOApp{publicstaticvoidmain(Stringargs[])throwsIOException{bytebuffer[]=newbyte[255];System.out.println("enter:");System.in.read(buffer,0,255);System.out.println("Got:");Stringx=newString(buffer);System.out.println(x);}}第三十三頁,共四十五頁,2022年,8月28日處理流BufferedReader類的readLine()方法可以一次從流中讀取一行,構(gòu)造器的參數(shù)為Reader類型。類InputStreamReader是Reader的子類,構(gòu)造器參數(shù)為輸入流。為了輸入字符串可以將System.in先傳給處理流InputStreamReader后再傳給處理流BufferedReader。第三十四頁,共四十五頁,2022年,8月28日例importjava.io.*;publicclassCharInput{publicstaticvoidmain(Stringargs[])throwsIOException{Strings;InputStreamReaderir;BufferedReaderin;
ir=newInputStreamReader(System.in);in=newBufferedReader(ir);
//in=newBufferedReader(newInputStreamReader(System.in));while((s=in.readLine())!=null)System.out.println(“Read:“+s);}}第三十五頁,共四十五頁,2022年,8月28日基本文件輸入輸出FileInputStream和FileOutputStream處理文件輸入輸出操作。構(gòu)造方法參數(shù):字符串代表的文件或File類型的對(duì)象。用read()和write()方法讀寫文件。第三十六頁,共四十五頁,2022年,8月28日例importjava.io.*;publicclassFileApp1{publicstaticvoidmain(Stringargs[])throwsIOException{intb;FileInputStreamfileIn=newFileInputStream(“fileapp1.java”);while((b=fileIn.read())!=-1)System.out.print((char)b);}}第三十七頁,共四十五頁,2022年,8月28日文件隨機(jī)讀寫從文件的任意一個(gè)位置開始讀寫。用RandomAccessFile類實(shí)現(xiàn)文件的隨機(jī)讀寫。一般的流中,文件指針只能順序移動(dòng),RandomAccessFile可以任意移動(dòng)文件指針。第三十八頁,共四十五頁,2022年,8月28日用法創(chuàng)建RandomAccessFile對(duì)象seek(longpos)方法將文件指針移動(dòng)到距離文件開頭pos個(gè)字節(jié)處。getFilePoint()返回當(dāng)前文件指針位置。length()返回文件的長度??捎梅椒╳riteChar()、writeInt()、readChar()、readInt等對(duì)文件進(jìn)行各種類型的讀寫。第三十九頁,共四十五頁,2022年,8月28日例例:向文件test.txt末尾添加一個(gè)字符串“hi”。importjava.io.*;publicclassRand{publicstaticvoidmain(Stringargs[])throwsIOException{RandomAccessFilef;try{ f=newRandomAccessFile("test.txt","rw"); f.seek(f.length()); f.writeUTF("hi\r\n");}catch(Exceptione){ System.out.println("error");}}}第四十頁,共四十五頁,2022年,8月28日例例:向文件寫入字符串。importjava.io.*;publicclassRandw{publicstaticvoidmain(Stringargs[])throwsIOException{RandomAccessFilef;try{ f=newRandomAccessFile("test.txt","rw"); f.writeBytes("XuYingxiao\n"); f.writeBytes("1.28\n"); f.writeBytes("LiuFang\n"); f.writeBytes("6.16\n");}catch(Exceptione){}}}第四十一頁,共四十五頁,2022年,8月28日對(duì)象流Java中的對(duì)象可以通過流的方式進(jìn)行處理,這稱為對(duì)象的序列化。對(duì)象輸出流ObjectOutputStream對(duì)象輸入流ObjectInputStream對(duì)象序列化的步驟定義可以通過流處理的類創(chuàng)建節(jié)點(diǎn)輸入/輸出流創(chuàng)建對(duì)象處理流從流中讀寫對(duì)象第四十二頁,共四十五頁,2022年,8月28日對(duì)象流一個(gè)類只有實(shí)現(xiàn)了Serializable接口,其對(duì)象才能夠通過流進(jìn)行輸入輸出。Serializable接口不需要實(shí)現(xiàn)任何方法。一個(gè)對(duì)象可能有各種類型的成員變量,對(duì)象序列化包括這些成員變量中的值。通過對(duì)象輸出流的writeOb
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 玉雕工藝品企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- 2025年度智慧城市建設(shè)合同評(píng)審報(bào)告單范文
- 二零二五年度宅基地占用及農(nóng)村土地置換協(xié)議
- 二零二五年度消費(fèi)股東合作協(xié)議及業(yè)績考核標(biāo)準(zhǔn)
- 2025年度電子文件長期保管與歸檔服務(wù)協(xié)議
- 便攜式智能免疫力儀行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 仿制抗病毒藥企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 二零二五年度生鮮超市與電商平臺(tái)共同打造生鮮供應(yīng)鏈金融協(xié)議
- 售賣技術(shù)協(xié)議
- 實(shí)驗(yàn)室廢棄物處理行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- JGJT163-2008 城市夜景照明設(shè)計(jì)規(guī)范
- 人工智能訓(xùn)練師(中級(jí)數(shù)據(jù)標(biāo)注員)理論考試題庫(含答案)
- 【紅樓夢(mèng)中的林黛玉性格探析5200字(論文)】
- (2024年)財(cái)務(wù)報(bào)表分析培訓(xùn)講義
- 融合安全數(shù)據(jù)底座分析中臺(tái)需求
- 大林和小林課件知識(shí)講稿
- 第六部分+攝影構(gòu)圖002
- 2024年海南省成考(專升本)大學(xué)語文考試真題含解析
- 4. 藏戲(課件)-2023-2024學(xué)年語文六年級(jí)下冊(cè)統(tǒng)編版
- 鐵路信號(hào)施工規(guī)范課件
- 工程經(jīng)濟(jì)學(xué)(第6版)全套教學(xué)課件
評(píng)論
0/150
提交評(píng)論