




免費(fèi)預(yù)覽已結(jié)束,剩余9頁(yè)可下載查看
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
山西大學(xué)計(jì)算機(jī)與信息技術(shù)學(xué)院實(shí)驗(yàn)報(bào)告姓 名 顏凱麗 學(xué) 號(hào)2010242100專(zhuān)業(yè)班級(jí)軟件工程一班課程名稱(chēng) Java實(shí)驗(yàn)實(shí)驗(yàn)日期2012/12/28成 績(jī)指導(dǎo)教師 批改日期實(shí)驗(yàn)名稱(chēng) 實(shí)驗(yàn)9 Java的輸入輸出流l 實(shí)驗(yàn)?zāi)康?. 理解I/O流的概念,掌握其分類(lèi)2. 掌握文本文件讀寫(xiě)、二進(jìn)制文件讀寫(xiě)l 實(shí)驗(yàn)內(nèi)容 1. 分別使用FileWriter 和 BufferedWriter 往文件中寫(xiě)入1萬(wàn)個(gè)隨機(jī)數(shù),比較用時(shí)的多少?(用時(shí)采用方法System.currentTimeMillis())求時(shí)間差;使用:FileWriter程序源代碼import java.io.FileWriter;import java.io.IOException;import java.util.Random;public class WriterSample public static void main(String args) throws IOException long start = System.currentTimeMillis();FileWriter f = new FileWriter(f.dat);Random random=new Random();for (int i = 0; i 10000; i+) f.write(int) random.nextDouble();long end = System.currentTimeMillis();f.close();System.out.println(end + ms - + start + ms = + (end - start)+ ms + );程序運(yùn)行結(jié)果貼圖使用:BufferedWriter程序源代碼import java.io.BufferedWriter;import java.io.FileWriter;import java.io.IOException;import java.util.Random;public class WriteSample2 public static void main(String args) throws IOException long start = System.currentTimeMillis();BufferedWriter f2 = new BufferedWriter(new FileWriter(f2.dat);Random random=new Random();for (int i = 0; i 10000; i+) f2.write(int) random.nextDouble();f2.flush();long end = System.currentTimeMillis();f2.close();System.out.println(end + ms - + start + ms = + (end - start)+ ms + );程序運(yùn)行結(jié)果貼圖2. 課本P547,19.2 :編寫(xiě)一個(gè)文件,如果文件Exercise 19_2.dat 不存在,就創(chuàng)建一個(gè)名為Exercise 19_2.txt的文件。向這個(gè)文件追加新數(shù)據(jù)。使用二進(jìn)制I/O將100個(gè)隨機(jī)生成的整數(shù)寫(xiě)入這個(gè)文件中。程序源代碼import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.PrintWriter;import java.util.Random;public class Append1 public static void main(String args) throws IOException File file = new File(Exercise19_2.dat);Random random = new Random(1000000000);if (!file.exists() file = new File(Exercise19_2.txt);PrintWriter f = new PrintWriter(new FileOutputStream(file, true);for (int i = 0; i 100; i+) f.printf(random.nextDouble() * 1000000000 + );f.close();程序運(yùn)行結(jié)果貼圖文件:Exercise19_2.txt中生成的一百個(gè)隨機(jī)數(shù):3. 課本P547 19.3:(對(duì)二進(jìn)制數(shù)據(jù)文件中的所有數(shù)據(jù)求和)假設(shè)已經(jīng)使用DataOutputStream中的writeInt(int)創(chuàng)建一個(gè)名為Exercise 19_3.dat的二進(jìn)制數(shù)據(jù)文件,文件包含數(shù)目不確定的整數(shù),編寫(xiě)一個(gè)程序來(lái)計(jì)算這些整數(shù)的總和。程序源代碼import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.EOFException;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.util.Random;public class SumAppend public static void main(String args) throws IOException File file = new File(Exercise19_3.dat);DataOutputStream output = new DataOutputStream(new FileOutputStream(file);Random random = new Random();int num = random.nextInt(100);int sum = 0;System.out.println(共有 + num + 個(gè)數(shù));for (int i = 0; i num; i+) int r = random.nextInt(100);output.writeInt(r);sum += r;System.out.println(總和為: + sum + n數(shù)據(jù)如下:);output.close();DataInputStream input = new DataInputStream(new FileInputStream(file);try while (true) System.out.println(input.readInt(); catch (EOFException ex) System.out.println(All data are read.);程序運(yùn)行結(jié)果貼圖4. 在文本文件bigbook.txt中包含有很長(zhǎng)篇幅的英語(yǔ)短文,編寫(xiě)程序要求統(tǒng)計(jì)文件的所有短文中包含英文字母“A”的個(gè)數(shù),并顯示統(tǒng)計(jì)的時(shí)間。程序源代碼import java.io.File;import java.io.FileNotFoundException;import java.util.Scanner;public class Statics public static void main(String args) throws FileNotFoundException long sum=0;long begin = System.currentTimeMillis();Scanner input = new Scanner (new File(A.txt);while(input.hasNext()String temp = new String(input.next();sum+=count(temp);long finish = System.currentTimeMillis();System.out.println(Letter A appears + sum + times in this artical.);System.out.println(this statistic uses + (finish-begin) + ms.);public static long count(String t)long re=0;for(int i=0;it.length();i+)if (t.charAt(i)=A)re+;return re;程序運(yùn)行結(jié)果貼圖A.txt中的內(nèi)容貼圖:5.編寫(xiě)一個(gè)Java應(yīng)用程序,給當(dāng)前的類(lèi)所在的文件ReadExample.java添加行號(hào)拷貝到另一個(gè)文件temp.text。程序源代碼import java.io.File;import java.io.FileNotFoundException;import java.io.PrintWriter;import java.util.Scanner;public class Append3 public static void main(String args) throws FileNotFoundException File file = new File(D:eclipsejavasrcAppend3.java);File target = new File(temp.txt);Scanner input = new Scanner (file);PrintWriter output = new PrintWriter(target);int i=1;while(input.hasNextLine()output.write(i+ );output.write(input.nextLine();output.println();i+;output.close();input.close();程序運(yùn)行結(jié)果貼圖Temp.txt中的內(nèi)容貼圖:P547 19.5(將對(duì)象和數(shù)組存儲(chǔ)在文件中)編寫(xiě)一個(gè)程序,向一個(gè)名為Exercise19_5.dat的文件中存儲(chǔ)一個(gè)含5個(gè)int值1,2,3,4,5的數(shù)組,存儲(chǔ)一個(gè)表示當(dāng)前時(shí)間的Date對(duì)象,存儲(chǔ)一個(gè)double值5.5程序源代碼import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectOutputStream;public class Append4 public static void main(String args) throws IOException File file = new File (Exercise19_5.dat);int array = 1,2,3,4,5;ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream(file);output.writeObject(array);output.writeObject(new java.util.Date();output.writeDouble(5.5);output.close();程序運(yùn)行結(jié)果貼圖Exercise19_5.dat中的內(nèi)容貼圖:P548 19.12(組合文件)編寫(xiě)一個(gè)工具程序,使它能夠用下面的命令,將文件組合在一起構(gòu)成一個(gè)新文件:java Exercise19_12 SourceFile1SourceFilen TargetFile這個(gè)命令將 SourceFile1,SourceFilen合并為T(mén)argetFile。程序源代碼import java.io.*;public class ComFile public static void main(String args) if(args.length!=3) System.out.println(ComFile c1 c2 com); System.exit(0); File f1 =new File(args0); File f2 =new File(args1); if(!f1.exists() System.out.println(c1+args0+不存在!); System.exit(0); if(!f2.exists() System.out.println(c2+args1+不存在!); System.exit(0); File f3 = new File(args2); try FileInputStream in1 =new FileInputStream(f1);FileInputStream in2 =new FileInputStream(f2);FileOutputStream out =new FileOutputStream(f3,true);int a;while(a=in1.read()!=-1)out.write(a);int b;while(b=in2.read()!=-1)out.write(b);in1.close();in2.close();out.close(); catch (FileNotFoundException e) e.printStackTrace(); catch (IOException e) e.printStackTrace();程序運(yùn)行結(jié)果貼圖課后作業(yè)P544 19.1 19.1619.1答:文本文件將數(shù)據(jù)解釋成字符序列,需要自動(dòng)進(jìn)行編碼和解碼t。二進(jìn)制文件中的數(shù)據(jù)是原始的二進(jìn)制數(shù)值,由位序列構(gòu)成。文本編輯器可以查看文本文件,但是不能查看二進(jìn)制文件。19.2在java中可以通過(guò)使用Java I/O類(lèi)來(lái)創(chuàng)建對(duì)象,再使用對(duì)象中定義的方法來(lái)讀寫(xiě)數(shù)據(jù)。數(shù)據(jù)流包含輸入流和輸出流,輸入流即從文件中讀取數(shù)據(jù)流,輸出流即將數(shù)據(jù)流寫(xiě)入文件19.3文本文件是在寫(xiě)入一個(gè)字符時(shí),將統(tǒng)一碼轉(zhuǎn)化為文件指定的編碼,而在讀取字符時(shí),將編碼轉(zhuǎn)化為統(tǒng)一碼的一種文件。它將數(shù)據(jù)解釋成字符序列,需要自動(dòng)進(jìn)行編碼和解碼,其文件的擴(kuò)展名為.txt。二進(jìn)制文件是在寫(xiě)入一個(gè)數(shù)值時(shí),將內(nèi)存中的確切值復(fù)制到文件中,實(shí)際也顯示的也是這個(gè)值,而在讀取一個(gè)字節(jié)時(shí),就會(huì)輸入流中讀取一個(gè)字節(jié)的數(shù)值。它將數(shù)據(jù)原始的二進(jìn)制數(shù)值,由位序列構(gòu)成,java虛擬機(jī)可以閱讀此類(lèi)文件,文件擴(kuò)展名為.dat。19.4字符在內(nèi)存中表示為統(tǒng)一碼的形式,在文本文件中表示為文件指定的編碼格式,即字符序列。19.50x0041 0x0042 0x004319.6ASCII碼文本文件中寫(xiě)入字符串100,它在文件中存儲(chǔ)的值為0x31 0x30 0x30使用二進(jìn)制I/O中寫(xiě)入字節(jié)型100,它在文件中存儲(chǔ)的值0x6419.7在java中使用統(tǒng)一碼,而在Windows文本文件中默認(rèn)使用ASCII碼19.8在java I/O類(lèi)中,幾乎所有的方法和構(gòu)造方法都會(huì)拋出異常,因?yàn)榻?jīng)常有不期望的錯(cuò)誤發(fā)生.19.9不關(guān)閉數(shù)據(jù)流可能會(huì)輸出文件中造成數(shù)據(jù)受損,或?qū)е缕渌某绦蛟O(shè)計(jì)錯(cuò)誤,數(shù)據(jù)無(wú)法正常存儲(chǔ).關(guān)閉數(shù)據(jù)流確保數(shù)據(jù)正常寫(xiě)入文件,同時(shí)也釋放數(shù)據(jù)流所占用的資源.19.10Read()方法從輸入流讀取數(shù)據(jù)的下一個(gè)字節(jié),返回的字節(jié)的值是一個(gè)在0到255之間的整數(shù)值,如果因?yàn)榈竭_(dá)這個(gè)流的末尾而無(wú)字節(jié)可用,則返回值是-1.它返回的是讀取的字節(jié)數(shù)。 InputStream中的抽象方法有read(),available(),close(),skip(),mark(),Reset() OutputStream中的抽象方法有write(),close(),flush()。InputStream()中的抽象方法是read(),OutputSt
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東中職考試題庫(kù)及答案
- 右三踝骨折護(hù)理查房
- 自發(fā)性氣胸的護(hù)理措施
- 4S店車(chē)間生產(chǎn)安全培訓(xùn)
- 銀行員工之聲培訓(xùn)課件
- 腫瘤護(hù)理發(fā)展趨勢(shì)
- 養(yǎng)老機(jī)構(gòu)安全培訓(xùn)
- 中班語(yǔ)言彩色奶牛課件
- 圖形認(rèn)知培訓(xùn)課件
- 鉆孔灌注樁培訓(xùn)課件
- 新編旅游職業(yè)道德 課件 譚為躍 第3-5章 旅行社從業(yè)人員道德素養(yǎng)、酒店從業(yè)者道德素養(yǎng)、景區(qū)點(diǎn)從業(yè)人員道德素養(yǎng)
- 市政管道施工培訓(xùn)課件
- 小學(xué)數(shù)學(xué)“組題”設(shè)計(jì)分析 論文
- 附件16:地下室燈帶臨時(shí)照明系統(tǒng)方案
- 中央空調(diào)維護(hù)保養(yǎng)服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 服務(wù)認(rèn)證培訓(xùn)課件
- 風(fēng)電場(chǎng)反事故措施
- 細(xì)胞生物學(xué)與疾病預(yù)防與治療
- 《銀行業(yè)風(fēng)險(xiǎn)管理》課件
- 工程倫理 課件全套 李正風(fēng) 第1-9章 工程與倫理、如何理解倫理- 全球化視野下的工程倫理
- 餐飲服務(wù)質(zhì)量保證措施
評(píng)論
0/150
提交評(píng)論