第一講引言軟件開(kāi)發(fā)過(guò)程_第1頁(yè)
第一講引言軟件開(kāi)發(fā)過(guò)程_第2頁(yè)
第一講引言軟件開(kāi)發(fā)過(guò)程_第3頁(yè)
第一講引言軟件開(kāi)發(fā)過(guò)程_第4頁(yè)
第一講引言軟件開(kāi)發(fā)過(guò)程_第5頁(yè)
已閱讀5頁(yè),還剩29頁(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、整理ppt1Java的輸入輸出2000,58 88 8整理ppt2主要內(nèi)容4Java的基本輸入輸出4IO流的類層次4標(biāo)準(zhǔn)文件類File4簡(jiǎn)單IO流4過(guò)濾流4文件的處理4Java 1.1的IO8 8整理ppt3JAVA的輸入/輸出4JAVA的輸入/輸出機(jī)制:流的概念4輸入/輸出流:java.io包中的標(biāo)準(zhǔn)類 兩個(gè)基本抽象類: InputStream, OutputStream 基本類中定義了完成基本I/0操作的抽象方法 讀寫(xiě)操作:read,write 關(guān)閉流的操作:close 送出并清空緩沖區(qū)數(shù)據(jù)的操作:flush8 8整理ppt4JAVA的輸入/輸出(續(xù))4InputStream public

2、 int read()按二進(jìn)制字節(jié)讀取 public void close()4OutputStream public void write(int)寫(xiě)出int的低位字節(jié) public void close() public void flush() 把緩沖寫(xiě)出至外設(shè)4基本IO流操縱的是無(wú)格式的二進(jìn)制碼8 8整理ppt5JAVA系統(tǒng)標(biāo)準(zhǔn)輸入/輸出4用于基本系統(tǒng)操作的類Systempublic final class java.lang.System extends java.lang.Object4System類包含三個(gè)I/O流成員用于系統(tǒng)標(biāo)準(zhǔn)輸入/輸出 public static Input

3、Stream System.in public static PrintStream System.out public static PrintStream System.err8 8整理ppt6IO流的類層次4Input/OutputStream StringBufferInputStream 僅有輸入流 SequenceInputStream僅有輸入流 ByteArrayInput/OutputStream /OutputStream PipedInput/OutputStream FilterInput/OutputStream DataInput/OutputStream Butte

4、redInput/OutputStream PrintStream僅有輸出流8 8整理ppt7標(biāo)準(zhǔn)文件類: File4File類的對(duì)象對(duì)應(yīng)于文件系統(tǒng)中的一個(gè)目錄或文件4File類對(duì)象描述文件路徑、名字、長(zhǎng)度、可否讀寫(xiě)等屬性,可用來(lái)命名文件、查詢文件屬性和處理目錄,但不讀寫(xiě)文件4體現(xiàn)了跨平臺(tái)不同文件的統(tǒng)一管理8 8整理ppt8File的構(gòu)造函數(shù)4 path) 絕對(duì)路徑File f1 = new File(“c:mydirmyfile.txt”); 相對(duì)路徑,移植性較好File f2 = new File(“mydirdir1”);4 path, String name)4 dir, String

5、 name)File f3 = new ,”myfile.txt”);8 8整理ppt9File的方法4獲取文件/目錄屬性 是否存在 public boolean exists() 判斷是文件還是目錄public boolean isFile();public boolean isDirectory(); 獲取文件名稱或整個(gè)路徑public String getName() 僅返回文件名public String getPath() 返回整個(gè)路徑字符串8 8整理ppt10File的方法(續(xù)) 文件長(zhǎng)度 public long length() 文件讀寫(xiě)屬性 public boolean can

6、Read()public boolean canWrite() 列出目錄中的文件 public String list()4文件/目錄操作 重命名 public boolean renameTo() 刪除 public boolean delete();8 8整理ppt11File的方法(續(xù)) 創(chuàng)建目錄 public boolean mkdir()4變量separator(public static final String) 為本機(jī)操作系統(tǒng)支持的路徑分隔符 DOS, Win95 “” Unix“/”4例: .java 對(duì)文件和目錄的簡(jiǎn)單操作8 8整理ppt12public static vo

7、id main(String args) try DataInputStream din = new DataInputStream(System.in); String sdir = test”, sfile; = new File(sdir); if ( Fdir1.exists() & Fdir1.isDirectory() System.out.println(There is a directory +sdir+ exists.);for( int i=0; i Fdir1.list().length; i+) /列出目錄下內(nèi)容 System.out.println( (Fd

8、ir1.list()i); File(testtemp);if(!Fdir2.exists() Fdir2.mkdir(); /創(chuàng)建原不存在的目錄System.out.println();System.out.println(Now the new list after create a new dir:);for( int i=0; i Fdir1.list().length; i+) /檢查目錄是否已建立System.out.println( (Fdir1.list()i);8 8整理ppt13System.out.println(Enter a in this directory:);s

9、file = din.readLine();/選取指定目錄下一個(gè)文件File Ffile = new File( Fdir1, sfile );if( Ffile.isFile() ) /顯示文件有關(guān)信息 System.out.println(File +Ffile.getName()+ in Path +Ffile.getPath()+ is +Ffile.length()+ in length. ); /end of if else System.out.println(the directory doesnt exist!); catch(Exception e) System.out.

10、println(e.toString(); /end of trycatch /end of main8 8整理ppt14簡(jiǎn)單的IO流4/OutputStream 代表一個(gè)在本地文件系統(tǒng)中的文件的IO流,可通過(guò)文件名或文件對(duì)象創(chuàng)建。 fis=new (“.in.txt”); fos=new (“.out.txt”);int c:while(c=fis.read()!= -1) fos.write(c);fis.close();fos.close();8 8整理ppt15簡(jiǎn)單的IO流(續(xù))4PipedInput/OutputStream 管道:用于把一個(gè)程序的輸出連接到另一個(gè)程序的輸入 管道流對(duì)

11、于一個(gè)流的多次系列操作很適用public InputStream process1(InputStream s) ps=new PipedOutputStream(); PrintStream os=new PrintStream(ps); is=new PipedInputStream(ps);return is;8 8整理ppt16簡(jiǎn)單的IO流(續(xù))4SequenceInputStreamSequenceInputStream(InputStream, InputStream) 把兩個(gè)/多個(gè)InputStream連接為一個(gè)InputStream4ByteArrayInput/OutputS

12、tream 從字節(jié)數(shù)組讀取/向字節(jié)數(shù)組寫(xiě)入8位數(shù)據(jù)4StringBufferInputStream(String) 把一個(gè)String 轉(zhuǎn)換為InputStream8 8整理ppt17過(guò)濾流4FilterInput/OutputStream 作用:給樸素的Input/OutputStream加上一些修飾某些有用的格式 來(lái)源:Input/OutputStream 種類: DataInput/OutputStream BufferedInput/OutputStream PrintStream 其他8 8整理ppt18過(guò)濾流(續(xù))4BufferedInput/OutputStream 自動(dòng)利用內(nèi)存

13、緩沖,不必每次存取外設(shè) 還可在其外面再加包裝new DataInputStream(new BufferedInputStream(new (“File1.txt”) ) );4DataInput/OutputStream 對(duì)于基本數(shù)據(jù)類型進(jìn)行有格式的讀寫(xiě) 注意:此處為存儲(chǔ)格式,DataOutputStream 與DataInputStream配套使用才有意義8 8整理ppt19過(guò)濾流(續(xù)) 實(shí)現(xiàn)了DataInput接口readInt/Float/Char/Boolean/Long/Double()readLine()從鍵盤讀入的重要方法 實(shí)現(xiàn)了DataOutput接口writeInt/Flo

14、at/Char/Boolean/Long/Double()4PrintStream 對(duì)于基本數(shù)據(jù)類型進(jìn)行有格式的顯示 注意:此處為顯示格式例:DataInOut.java8 8整理ppt20int i=20; float d=(float)20.22; String s=“Hello測(cè)試;try DataOutputStream dout = new DataOutputStream(new (“test.txt”); /dout可格式輸出 DataInputStream din = new DataInputStream(new (“test.txt”); /din可格式輸入 /利用Data

15、OutputStream dout寫(xiě)出數(shù)據(jù) dout.writeInt(i); dout.writeFloat(d); dout.writeUTF(s); System.out.println(write successfully!); /利用DataInputStream din讀入數(shù)據(jù), din與dout配套使用 System.out.println(reading out:); System.out.println(din.readInt(); System.out.println(din.readFloat(); System.out.println(din.readUTF(); ca

16、tch(Exception e) 8 8整理ppt21文件的處理4 , 首先利用文件名等為文件的讀/寫(xiě)創(chuàng)建一個(gè)專用的流對(duì)象,從而在程序和文件之間建立數(shù)據(jù)傳遞通道 通過(guò)調(diào)用文件輸入/輸出流的方法read/write 在程序中對(duì)流對(duì)象讀出/寫(xiě)入數(shù)據(jù),實(shí)現(xiàn)對(duì)本地文件的讀寫(xiě) 例外: IOException8 8整理ppt22文件的處理(續(xù))4隨機(jī)訪問(wèn)文件:RandomAccessFile類 不屬于Input/OutputStream 用于訪問(wèn)本地文件 可以實(shí)現(xiàn)隨機(jī)訪問(wèn) 可讀可寫(xiě) 同時(shí)實(shí)現(xiàn)了DataInput和DataOutput接口,可同時(shí)進(jìn)行有格式的讀寫(xiě)4創(chuàng)建時(shí)指定對(duì)應(yīng)某一文件完成讀或?qū)懖僮?Ran

17、domAccessFile s1=new RandomAccessFile(“a.txt”,”r”); File f1=new File(“a.txt”); RandomAccessFile s2=new RandomAccessFile(f1,”rw”);8 8整理ppt23文件的處理(續(xù))4隨機(jī)文件讀寫(xiě) readXx(),writeXx( ):實(shí)現(xiàn)DataInput/Output接口 讀寫(xiě)位置:文件指針及其操作函數(shù)public int skipBytes(int n);public void seek(long n);public long get(); 絕對(duì)地址4例:testRandom

18、.java8 8整理ppt24/第一次操作,依次寫(xiě)出10個(gè)數(shù)據(jù)RandomAccess = /讀寫(xiě)模式 new RandomAccessFile(rtest.dat, rw);for(int i = 0; i 10; i+) rf.writeDouble(i*1.414);rf.close();/第二次操作,隨機(jī)輸出修改一個(gè)數(shù)值rf = new RandomAccessFile(“rtest.dat”, “rw”); /讀寫(xiě)模式rf.seek(5*8);rf.writeDouble(47.0001);rf.close();/第三次操作,依次讀入10個(gè)數(shù)據(jù)rf = new RandomAcces

19、sFile(“rtest.dat”, “r”); /讀模式for(int i = 0; i 10; i+)System.out.println(Value + i + : + rf.readDouble();rf.close();8 8整理ppt25Java1.1的I/O4與1.0.2相比的優(yōu)越性 國(guó)際化引入了字符流(Character Stream)處理16位的Unicode碼,而1.0.2中的字節(jié)流(Byte Stream)僅處理8位字節(jié)。新引入的Reader及Writer類均支持Unicode碼。 性能新的API的速度優(yōu)于1.0.2的類庫(kù)8 8整理ppt26基本類的變化4具有deprec

20、ated信息,但向前兼容 引入Reader,替代InputStream 引入Writer,替代OutputStream4橋梁:InputStreamReader類和OutputStreamWriter類InputStreamReaderInputStreamReaderOutputStreamWriterOutputStreamWriter8 8整理ppt27具體I/O流的變化4一般規(guī)則:由XXXReader/Writer替代XXXInput/OutputStream4特例: 沒(méi)有改變的類:DataOutputStream, SequenceInputStream,(File, RandomA

21、ccessFile) DataInputStream的readLine()方法deprecated, 要使用BufferedReader的ReadLine()4例:NewIODemo.java4參考文件correspond.doc8 8整理ppt28/ 1. Reading input by lines:BufferedReader in = new BufferedReader( new (test.txt);String s, s2 = new String();while(s = in.readLine()!= null) /要利用BufferedReader調(diào)用readLine s2

22、+= s + n;in.close();/ 1b. Reading standard input:BufferedReader stdin = new BufferedReader( /包裝標(biāo)準(zhǔn)輸入 new InputStreamReader(System.in); /轉(zhuǎn)換為ReaderSystem.out.print(Enter a line:);System.out.println(stdin.readLine();8 8整理ppt29/ 2. Input from memoryStringReader in2 = new StringReader(s2);int c;while(c =

23、in2.read() != -1) System.out.print(char)c);/ 3. Formatted memory inputtry DataInputStream in3 = new DataInputStream(new StringBufferInputStream(s2); while(true) System.out.print(char)in3.readByte(); catch(EOFException e) System.out.println(End of stream);8 8整理ppt30/ 4. Storing & recovering datat

24、ry /out2用于保存數(shù)據(jù) DataOutputStream out2 = new DataOutputStream( new BufferedOutputStream( new (Data.txt); out2.writeDouble(3.14159); out2.writeBytes(That was pi); out2.close(); /in5用于讀入數(shù)據(jù),in5br用于讀入字符串 DataInputStream in5 = new DataInputStream( new BufferedInputStream( new (Data.txt); BufferedReader in5br = new BufferedReader( new InputStreamReader(in5); System.out.println(in5.readDouble(); System.out.println(in5br.readLine(); catch(EOFException e) System.out.println(End of stream);8 8整理ppt31標(biāo)準(zhǔn)IO重定向4Sy

溫馨提示

  • 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)論