版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
本章內(nèi)容
輸入輸出流字符輸入輸出文件管理
字節(jié)輸入流
InputStreamPushbackInputStreamByteArrayInputStreamStringBufferInputStreamFileInputStreamPipedInputStreamSequenceInputStreamFilterStreamDataInputStreamBufferedInputStreamLineNumberInputStream類描述ByteArrayInputStream以內(nèi)存的一個(gè)緩沖區(qū)當(dāng)作InputStream使用StringBufferInputStream將String轉(zhuǎn)化為InputStreamFileInputStream讀取文件中的信息PipedInputStream常用作多線程環(huán)境中的數(shù)據(jù)源SequenceInpuStream將兩個(gè)或多個(gè)InputStream轉(zhuǎn)為單一的InputStreamFilterInputStream是抽象類,作為其他裝飾類的接口。DataInputStream和DataOutputStream協(xié)同應(yīng)用,可從stream讀入基本類型BufferedInputStream緩沖讀,減少讀次數(shù)LineNumberInputStream它會(huì)記錄stream內(nèi)的行數(shù)。PushbackInputStream它會(huì)送最后一個(gè)字節(jié),一般用于編譯器。importjava.awt.*;importjava.awt.event.*;importjava.io.*;publicclassReadFileextendsFrameimplementsActionListener{
FileDialogm_fd;TextFieldm_txtFilename=newTextField(10);Labelm_lblChoosefile=newLabel("選擇文件:");Buttonm_btnChoose=newButton("瀏覽");TextAream_txtareaFilecontent=newTextArea(10,20);Stringm_sTemp;
StringBufferm_buf=newStringBuffer();ReadFile(){this.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});this.setLayout(newFlowLayout());add(m_lblChoosefile);add(m_txtFilename);add(m_btnChoose);add(m_txtareaFilecontent);
m_btnChoose.addActionListener(this);setSize(500,250);setVisible(true);}publicvoidactionPerformed(ActionEvente){Stringcmd=e.getActionCommand();if(cmd=="瀏覽"){
m_txtareaFilecontent.setText(null); m_buf.delete(0,m_buf.length());
m_fd=newFileDialog(this,"打開(kāi)文件",FileDialog.LOAD);
m_fd.setDirectory("c:\\");m_fd.setVisible(true);
m_sTemp=m_fd.getDirectory()+m_fd.getFile();m_txtFilename.setText(m_sTemp);try{
BufferedInputStreambi=newBufferedInputStream(newFileInputStream(m_sTemp));
while(bi.available()!=0){chara=(char)bi.read();m_buf.append(a);}
bi.close();m_txtareaFilecontent.setText(m_buf.toString());}catch(Exceptionee){}}//if}//actionPerformed()publicstaticvoidmain(String[]args){newReadFile();}}字節(jié)輸出流OutputStreamByteArrayOutputStreamFileOutputStreamPipedOutputStreamFilterStreamDataOutputStreamBufferedOutputStreamPrintStream類描述ByteArrayOutputStream建立一塊內(nèi)存緩沖區(qū),所有送至此Stream的數(shù)據(jù)都會(huì)被置于該緩沖區(qū)內(nèi)FileOutputStream將信息寫入文件PipedOutputStream常用作多線程環(huán)境中的數(shù)據(jù)源FilterOutputStream是抽象類,作為其他裝飾類的接口。DataOutputStream和DataInputStream協(xié)同應(yīng)用,可將各種基本類型數(shù)據(jù)寫至streamBufferedOutputStream緩沖寫,減少寫次數(shù),可以調(diào)用flush函數(shù)清除緩沖區(qū)內(nèi)容PrintStream產(chǎn)生格式化輸出結(jié)果。publicvoidactionPerformed(ActionEvente){Stringcmd=e.getActionCommand();if(cmd=="瀏覽"){ m_fd=newFileDialog(this,"打開(kāi)文件",FileDialog.LOAD);m_fd.setDirectory("c:\\");m_fd.setVisible(true);
inFilename=m_fd.getDirectory()+m_fd.getFile();m_txtFilename.setText(inFilename);try{BufferedInputStreambi=newBufferedInputStream(newFileInputStream(inFilename));
outFilename=m_fd.getDirectory()+"b.txt";
BufferedOutputStreambo=newBufferedOutputStream(newFileOutputStream(outFilename));while(bi.available()!=0){chara=(char)bi.read();m_buf.append(a);
bo.write(a);}m_txtareaFilecontent.setText(m_buf.toString());bi.close();bo.close();}catch(Exceptionee){}}}字符輸入輸出Reader和Writer提供了基于字符的IO(character-based)?;谧止?jié)的流無(wú)法正確處理基于16位的unicode字符,經(jīng)常出現(xiàn)亂碼,Reader和Writer在所有IO操作上提供對(duì)unicode的支持。publicvoidactionPerformed(ActionEvente){Stringcmd=e.getActionCommand();if(cmd=="瀏覽"){ m_fd=newFileDialog(this,"打開(kāi)文件",FileDialog.LOAD);m_fd.setDirectory("c:\\");m_fd.setVisible(true);inFilename=m_fd.getDirectory()+m_fd.getFile();m_txtFilename.setText(inFilename);try{
BufferedReaderbr=newBufferedReader(newFileReader(inFilename));
outFilename=m_fd.getDirectory()+"b.txt";
BufferedWriterbw=newBufferedWriter(newFileWriter(outFilename));Strings;
while((s=br.readLine())!=null){m_buf.append(s);}
bw.write(m_buf.toString());br.close();bw.close();m_txtareaFilecontent.setText(m_buf.toString());}catch(Exceptionee){}}}文件管理調(diào)用File類方法可完成對(duì)文件或目錄的常用操作,如創(chuàng)建、刪除和重命名等,不涉及文件的讀寫操作創(chuàng)建File類對(duì)象
File(Stringfilename);
filename指File對(duì)象對(duì)應(yīng)的文件或目錄名及其路徑,路徑可以是相對(duì)路徑,相對(duì)路徑認(rèn)為與當(dāng)前應(yīng)用程序在同一目錄下絕對(duì)路徑如:E:\\test\\a.txtFile(Stringdirectorypath,Stringfilename);
filename是文件名字File(Filef,Stringfilename);
f是一個(gè)指定成目錄的文件
獲取文件或目錄屬性判斷文件或目錄是否存在
publicbooleanexists();判斷是文件還是目錄
publicbooleanisFile();
publicbooleanisDirectory();獲取文件或目錄名稱和路徑
publicStringgetName();
publicStringgetPath();獲取文件長(zhǎng)度
publiclonglength();獲取文件讀寫屬性
publicbooleancanRead();
publicbooleancanWrite();列出目錄中的文件
publicString[]list();比較兩個(gè)文件或目錄
publicbooleanequals(Filef);文件或目錄操作重命名文件
publicbooleanrenameTo(Filenewfile);刪除文件
publicvoiddelete();創(chuàng)建目錄
publicbooleanmkdir();importjava.io.*;importjava.util.*;publicclassfile{publicstaticvoidmain(String[]args){Stringm_sFilename;try{
BufferedReaderbin=newBufferedReader(newInputStreamReader(System.in));while(true){System.out.println("請(qǐng)輸入文件或目錄名稱(QUIT退出):");m_sFilename=bin.readLine();
if(m_sFilename.equalsIgnoreCase("quit")){bin.close();break;}
Filef=newFile(m_sFilename);
if(f.isFile()){
BufferedReaderfin=newBufferedReader(newFileReader(f));Strings;
System.out.println("文件名稱:"+f.getName());System.out.println("文件日期:"
+new
Date(f.lastModified()).toString());System.out.println("文件大小:"+f.length());System.out.println("文件內(nèi)容如下:");System.out.println("-----------------------------------");
while((s=fin.readLine())!=null)System.out.println(s);System.out.println("-----------------------------------");
fin.close();}
elseif(f.isDirectory()){String[]files=f.list();System.out.println("目錄文件列表:");System.out.println("-----------------------------------");
for(inti=0;i<files.length;i++)System.out.println(files[i]);System.out.println("-----------------------------------");}}}catch(Exceptione){}System.out.println("再見(jiàn)!");}}文件隨機(jī)訪問(wèn)FileInputStream和FileOutputStream實(shí)現(xiàn)了對(duì)磁盤文件的順序讀寫,JAVA同時(shí)提供了對(duì)文件的隨機(jī)訪問(wèn)RandomAccessFile。創(chuàng)建RandomAccessFile類的對(duì)象RandomAccessFile(Stringname,Stringmode);
name指明創(chuàng)建的RandomAccessFile對(duì)象對(duì)應(yīng)的文件及其路徑,路徑可以是相對(duì)
mode指明打開(kāi)文件方式,“r”,“rw”
RandomAccessFile(Filedir,Stringmode);
dir表示所對(duì)應(yīng)文件的File對(duì)象
mode指明打開(kāi)文件方式,“r”,“rw”
對(duì)文件位置指針的操作
新建對(duì)象,文件指針在文件開(kāi)頭處;
隨著讀寫操作,文件位置指針都相應(yīng)后移讀寫的字節(jié)數(shù)。獲取指針位置
publiclonggetPointer();//返回當(dāng)前位置相對(duì)文件頭算起的絕對(duì)位置移動(dòng)指針
publicvoidseek(longpos);//將指針移動(dòng)到相對(duì)文件頭的pos值指定位置獲取文件大小
publiclonglength();//返回文件長(zhǎng)度(字節(jié)數(shù))讀文件實(shí)現(xiàn)了DataInput接口,多種方法讀取不同類型的數(shù)據(jù):readBoolean();readChar();readInt();readByte();readLine();……寫文件實(shí)現(xiàn)了DataOutput接口,針對(duì)不同類型數(shù)據(jù)提供多種輸出方法:
writeBoolean();writeChar();writeInt();writeByte();
importjava.io.*;importjava.util.*;publicclassFile2{publicstaticvoidmain(String[]args){Stringm_sFilename;try{
BufferedReaderin=newBufferedReader(newInputStreamReader(System.in));while(true){System.out.println("請(qǐng)輸入文件名稱(QUIT退出):");
m_sFilename=in.readLine();if(m_sFilename.equalsIgnoreCase("quit")){in.close();break;}RandomAccessFileraf=newRandomAccessFile(m_sFilename,"rw");System.out.println("文件內(nèi)容如下:");System.out.println("-----------------------------------");
while(raf.getFilePointer()<raf.length())System.out.println(raf.readLine());System.out.println("-----------------------------------");raf.close();}}catch(Exceptione){
System.out.println(e.getMessage());}System.out.println("再見(jiàn)!");}}聲明窗口類ReadFile,在窗口中輸入用戶名和密碼,并將用戶名和密碼保存到文件Secret.txt中。思考題importjava.awt.*;importjava.awt.event.*;importjava.io.*;publicclassReadFileextendsFrameimplementsActionListener{Labelm_id=newLabel("用戶名:");Labelm_key=newLabel("密碼:");Buttonm_input=newButton("存入");TextFieldId=newTextField(10);TextFieldKeyid=newTextField(10);StringoutFilename;StringBufferm_buf=newStringBuffer();ReadFile(){th
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)文明培訓(xùn)課件
- 《能源互聯(lián)網(wǎng)》課件
- 小班安全課件《狗狗來(lái)了》
- 廚具銷售培訓(xùn)課件
- 共青科技職業(yè)學(xué)院《現(xiàn)代基礎(chǔ)化學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 贛州師范高等??茖W(xué)校《金融法》2023-2024學(xué)年第一學(xué)期期末試卷
- 贛州師范高等??茖W(xué)?!队耙晱V告設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 《雞病解剖及診斷》課件
- 贛東學(xué)院《體質(zhì)測(cè)量與評(píng)價(jià)》2023-2024學(xué)年第一學(xué)期期末試卷
- 甘孜職業(yè)學(xué)院《莎士比亞戲劇導(dǎo)讀》2023-2024學(xué)年第一學(xué)期期末試卷
- (高清版)組合鋁合金模板工程技術(shù)規(guī)程JGJ 386-2016
- 室內(nèi)質(zhì)控品統(tǒng)一征訂單
- 《論語(yǔ)》誦讀計(jì)劃
- 2006年工資標(biāo)準(zhǔn)及套改對(duì)應(yīng)表
- 中英文對(duì)照財(cái)務(wù)報(bào)表-模板
- 醫(yī)院應(yīng)急預(yù)案匯編-門診突發(fā)事件應(yīng)急預(yù)案
- 市場(chǎng)發(fā)展部崗位職責(zé)
- 配電線路三跨設(shè)計(jì)技術(shù)原則
- 《金融風(fēng)險(xiǎn)管理》習(xí)題集(.3)
- 應(yīng)急監(jiān)測(cè)車購(gòu)置公開(kāi)招標(biāo)
- 斜盤式軸向柱塞泵設(shè)計(jì)說(shuō)明書(shū)
評(píng)論
0/150
提交評(píng)論