实验七 输入输出流
一.实验目的和要求
目的:
1、掌握使用输入输出流进行文件的读写操作。 要求:
1、实验报告给出内容1,2的填充代码以及内容3的全部源代码。
二.实验内容
1、按程序模板要求,将注释处替换为Java程序代码。实现文件加密。
2、按程序模板要求,将注释处替换为Java程序代码。给文件的内容添加行号. 3、串行化对象Student到本地文件,并在下一次运行程序时用来初始化。(选做)
三.实验环境
硬件:
(1)学生用微机 (2)多媒体实验教室 软件:
(1)Windows XP中文操作系统 (2)JDK控制台
四.算法描述及实验步骤
实验步骤:
1、按程序模板要求,将注释处替换为Java程序代码
该程序将已存在的文本文件加密后存入另一个文本文件中。请按模板要求,将【代码1】~【代码6】替换为Java程序代码
SecretExample.java import java.io.*;
public class SecretExample {
public static void main(String args[ ]) {
File fileOne=new File(\ fileTwo=new File(\ char b[]=new char[100]; try{
FileReader in=【代码1】 // 创建指向fileOne的字符输入流 FileWriter out=【代码2】 // 创建指向fileTwo字符输出流 int n=-1;
while((n=in.read(b))!=-1) {
for(int i=0;i b[i]=(char)(b[i]^'a'); } 【代码3】 // out将数组b的前n单元写到文件 } 【代码3】 // out关闭 in=【代码4】 // 创建指向fileTwo的字符输入流 System.out.println(\加密后的文件内容:\ while((n=in.read(b))!=-1) { String str=new String(b,0,n); System.out.println(str); } in=【代码5】 // 创建指向fileTwo的字符输入流 System.out.println(\解密后的文件内容:\ while((n=in.read(b))!=-1) { for(int i=0;i b[i]=(char)(b[i]^'a'); } System.out.printf(new String(b,0,n)); } 【代码6】 // in关闭 } catch(IOException e) { System.out.println(e); } } } 2、 按模板要求,将【代码1】~【代码14】替换为Java程序代码。 该给文件的内容添加行号。 ReadExample.java import java.io.*; public class ReadExample { public static void main(String args[ ]) { File file=new File(\ File tempFile=new File(\ try{ FileReader inOne=【代码1】 // 创建指向文件file的输入流 BufferedReader inTwo=【代码2】//创建指向inOne file的输入流 FileWriter tofile=【代码3】//创建指向文件tempFile的输出流 BufferedWriter out=【代码4】// 创建指向tofile的输出流 String s=null; int i=0; s=【代码5】 // inTwo读取一行 while(s!=null) { i++; out.write(i+\ out.newLine(); s=【代码6】 // inTwo读取一行 } inOne.close(); inTwo.close(); out.flush(); out.close(); tofile.close(); inOne=【代码7】 // 创建指向文件tempFile的输入流 inTwo= 【代码8】 // 创建指向inOne file的输入流 tofile=【代码9】 // 创建指向文件file的输出流 out=【代码10】 // 创建指向tofile的输出流 while((s=【代码11】)!=null) // inTwo读取一行 { out.write(s); out.newLine(); } inOne.close(); inTwo.close(); out.flush(); out.close(); tofile.close(); inOne=【代码12】 // 创建指向文件file的输入流 inTwo=【代码13】 // 创建指向inOne file的输入流 while((s=【代码14】)!=null) // inTwo读取一行 { System.out.println(s); } inOne.close(); inTwo.close(); tempFile.delete(); } catch(IOException e) { System.out.println(e); } } } 五.调试过程 1.按要求填写程序(程序一)并调试运行: 于是新建一文件:e:\\hello.txt(内容见附录1),并改动文件位置,运行所得程序(附录2)得实验结果(见实验结果1)。 2. 按要求填写程序(程序二)并调试运行: 错误与程序一相同,修改程序(附录3)调试运行得实验结果(见实验结果2)。 六.实验结果 1.运行程序一得: 2.运行程序二得: 七.总结 像这种填空题,答案又几乎都一样的,我写的这么简单,不知道老师会不会怀疑我哦。嘿嘿,不想废话,回故下这个实验又有什么收获吧(填了那么多空,实际上就只用了4个知识点): 1.在Java语言里用new关键字来生成对象,通常的格式为: 类名 对象名=new 类名([参数]); 所以要生成对象,知道了它的所属类就再简单不过了。 2.在java.io.Reader与java.io.Writer类里均有关闭流函数,函数头均为: Public abstract void close() throws IOException 3.在java.io.Writer类里提供了一个函数以实现将字符数组cbuf中的第off到第len元素 写入到输出流中: public void write(char[] cbuf,int off,int len) throws IOException 4.BufferedReader是缓冲读取文件字符流,它除了有父类Reader提供的基本读取方法外,还增加了对整行字符进行读取的方法:readLine(). 附录: 1.e:\\hello.txt中的内容: 我爱你啊 真的 哈哈?? !! 2.程序一:// SecretExample.java import java.io.*; public class SecretExample { public static void main(String args[ ]) { File fileOne=new File(\ fileTwo=new File(\ char b[]=new char[100]; try{ FileReader in=new FileReader(fileOne); // 创建指向fileOne的字符输入流 FileWriter out=new FileWriter(fileTwo); // 创建指向fileTwo字符输出流 int n=-1; while((n=in.read(b))!=-1) { for(int i=0;i b[i]=(char)(b[i]^'a'); } out.write(b,0,n-1); // out将数组b的前n单元写到文件 } out.close(); // out关闭 in=new FileReader(fileTwo); // 创建指向fileTwo的字符输入流 System.out.println(\加密后的文件内容:\ while((n=in.read(b))!=-1) { String str=new String(b,0,n); System.out.println(str); } in=new FileReader(fileTwo); // 创建指向fileTwo的字符输入流 System.out.println(\解密后的文件内容:\ while((n=in.read(b))!=-1) { for(int i=0;i 百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库java实验七 输入输出流在线全文阅读。
相关推荐: