面向对象程序设计3
武汉纺织大学《面向对象程序设计》实验报告 实验时间:2015年10月28日指导教师:陈智洁 一、实验目的 1. 熟悉File类 2. 了解文件字节输入、输出流的是使用方法 3. 掌握文件字符输入、输出流的使用方法 4. 理解缓冲流的使用方法 5. 掌握数据流的使用方法 二、实验内容 1. 回答以下问题: (1) 如果准备按字节读取一个文件的内容,是使用FilelnputStream 类还是FileReader类? (2) BufferReader对象能直接指向一个文件吗? (3) 数据流的特点是什么? 2. 使用Java的输入、输出流将一个文本文件的内容按行读出,每读出一行 就顺序添加行号,并写入另一个文本文件中。 3. (附加题)编写一个小记事本程序,要求程序能通过键盘输入当前发生的 事件,且将信息存放在一个文本文件中。当程序再次启动时首先显示前 一次发生的事件。 三、操作步骤 1. 回答以下问题: (1) 如果准备按字节读取一个文件的内容,是使用FilelnputStream 类还是FileReader类? 答:FilelnputStream :以字节流方式读取;FileReader:把文件转换为字符流读 入,所以使用 FilelnputStream。 (2) BufferReader对象能直接指向一个文件吗? 答:不能,因为它是上层流,指向的是字符输入流,而不是文件。 (3) 数据流的特点是什么? 答:它允许按着机器无关的风格读取JAVA原始数据,也就是说,当读取 一个数值时,不必再关心这个数值应当是多少个字节。 2. 使用Java的输入、输出流将一个文本文件的内容按行读出,每读出一行就 顺序添加行号,并写入另一个文本文件中。 [J] *Newl. j ava 汉 import java.io. public class Newl { I - public static void main(String args[]){ File sourceFile=new File (“龙卷风.匕xt”); File targetFile^new File (“新龙卷风・txt”); try( Writer out=new FileWriter(targetFile); BufferedWriter bw=new 3ufferedWriter(out); Reader in=new FileReader(sourceFile); 3ufferedReader br=new 3ufferedReader(in); String str=null; int i=l; for(i=l;(str=br.readLine())!=null;1++){ bw.write(i+n:n+str); bw.newLine(); } bw.close(); out.close(); } catah(lOException e)( System.out.printin(nErrorn+e); r新龙春风.txt -… Q叵|区1 四、实验收获和建议 ■龙卷A.txt -. O叵|区| 文件d)编辑但)格式(Q)查看② 帮助电) 式 就 格 就 KJ,lh IIW 爱 件看广 i 不T 不不不 不不 文查oh风我我我 来 圈 风想想 开!走承要要我 本费想我 龙可 1 风 卷躲 5 6 7 8 离木并墨凤I 我不崩喜想 如走的太 ?o: 11: 奴快就像龙卷风 I来不及盅 龙卷风 可躲 B 木莪呆莪不要再想你 在实验过程中,第二个实验在树上有例题,经过简单的修改我们就可以得到想要的结 果,但是在运行语句write out中加上true,运行结果反复出现,删除之后就好了