《Java程序设计》实验报告实验序号:实验7实验项目名称:数据流操作教师成绩等级评定一、实验目的通过实验,掌握输入输出流的概念和基本类层次结构,掌握主要字节流的定义和使用,掌握主要字符流的定义和使用,掌握文件管理以及文件操作的基本方法,了解对象序列化的概念和实现方法,了解其他常用流的定义和使用二、实验内容1、文件顺序访问实例。2、文件随机访问实例。3、对象序列化实例。三、实验步骤1、(顺序访问文件编程)读入一段英文短文,将此短文中连续的两个或多个空格删除,只保留一个空格,通过这样来规范英文短文的格式,并将修改后的短文使用字节流方式输出到控制台(屏幕)和一个文本文件中。packagepack1;importjava.io.*;publicclassTest{publicstaticvoidmain(String[]args)throwsIOException{BufferedReaderbuf=newBufferedReader(newInputStreamReader(System.in));BufferedWriterbuff=newBufferedWriter(newFileWriter(c:\\haha.txt));System.out.println(请输入一串字符串:);Stringstr=buf.readLine();inti,j;for(i=0;istr.length();i++){if(str.charAt(i)==''){for(j=i+1;jstr.length();j++){if(str.charAt(j)!=''){System.out.print();break;}i=j;}}elseSystem.out.print(str.charAt(i));buff.write(str.charAt(i));}buff.close();}}程序代码(所有代码使用CourierNew的10号字体,添加必要的注释):2、(文件随机存取编程)编写一个简易理财程序,可以在屏幕上输入一批财政支出,每笔支出包括支出日期、金额和支出原因等,并写入文本文件进行保存。可以随机调出任意一笔支出查看,或查看所有支出。packagepack1;importjava.io.*;publicclassTest1{publicstaticvoidmain(String[]args)throwsIOException{//BufferedReaderbuf1=newBufferedReader(newInputStreamReader(System.in));//BufferedReaderbuf2=newBufferedReader(newInputStreamReader(System.in));//BufferedReaderbuf3=newBufferedReader(newInputStreamReader(System.in));//BufferedWriterbuff=newBufferedWriter(newFileWriter(c:\\haha.txt));//System.out.println(支出日期为:);//Stringdate=buf1.readLine();//System.out.println(支出金额为:);//Stringnum=buf2.readLine();//System.out.println(支出原因为:);//Stringre=buf3.readLine();//System.out.println(日期:+date);//System.out.println(金额:+num);//System.out.println(原因:+re);//buff.write(日期:+date);//buff.newLine();//buff.write(金额:+num);//buff.newLine();//buff.write(原因:+re);//buff.newLine();//buff.close();BufferedReaderin=newBufferedReader(newFileReader(c:\\haha.txt));//in.readLine();//in.readLine();//in.readLine();System.out.println(in.readLine());System.out.println(in.readLine());System.out.println(in.readLine());}}程序代码(所有代码使用CourierNew的10号字体,添加必要的注释):3、综合编程(包括控制台输入输出流、对象序列化等知识,请使用对象序列化相关知识完成本程序):A、从控制台(屏幕)输入5个学生的基本信息(包括姓名、学号、Java课的成绩),统计学生的总分、平均分,并将学生的基本信息(姓名、学号、Java课的成绩)保存到文件student.txt中。packagepack2;importjava.io.*;publicclassTest{publicstaticvoidmain(String[]args)throwsIOException{floatall=0,ava;BufferedWriterbuff=newBufferedWriter(newFileWriter(c:\\student.txt));for(inti=1;i=3;i++){BufferedReadera=newBufferedReader(newInputStreamReader(System.in));BufferedReaderb=newBufferedReader(newInputStreamReader(System.in));BufferedReaderc=newBufferedReader(newInputStreamReader(System.in));System.out.println(第+i+位学生:);System.out.println(姓名:);Stringname=a.readLine();System.out.println(学号:);Stringnum=b.readLine();System.out.println(java课成绩:);Stringgrade=c.readLine();all=all+Float.parseFloat(grade);buff.write(第+i+位学生:+姓名:+name+学号:+num+java课成绩:+grade+);buff.newLine();}ava=all/3;System.out.println(总分为:+all);System.out.println(平均分为:+ava);buff.close();}}B、从文件student.txt中读取保存的学生的基本数据,将Java课的成绩排序,将排序后的结果保存到文件studentsorted.txt中,并将排序后的结果输出到控制台(屏幕)。packagepack2;importjava.io.*;importjava.util.Arrays;publicclassTest{publicstaticvoidmain(String[]args)throwsIOException{FileOutputStreamfos=newFileOutputStream(D:\\student.txt);ObjectOutputStreamoos=newObjectOutputStream(fos);floatall=0,ava;Students1=newStudent(张三,10,95);oos.writeObject(s1);Students2=newStudent(李四,11,100);oos.writeObject(s2);Students3=newStudent(王五,12,91);oos.writeObject(s3);all=s1.score+s2.score+s3.score;ava=all/3;System.out.println(姓名:+s1.name++学号:+s1.num++java课成绩:++s1.score);System.out.println(姓名:+s2.name++学号:+s2.num++java课成绩:++s2.score);System.out.println(姓名:+s3.name++学号:+s3.num++java课成绩:++s3.score);System.out.println(总分为:+all);System.out.println(平均分为:+ava);Studentstu1;Studentstu2;Studentstu3;try{FileInputStreamfis=newFileInputStream(D:\\student.txt);ObjectInputStreamois=newObjectInputStream(fis);stu1=(Student)ois.readObject();stu2=(Student)ois.readObject();stu3=(Student)ois.readObject();float[]a={stu1.score,stu2.score,stu3.score};Arrays.sort(a);for(inti=0;i=2;i++){System.out.print(a[i]+);}}catch(ClassNotFoundExceptione){e.printStackTrace();}}}classStudentimplementsSerializable{privatestaticfinallongserialVersionUID=1L;Stringname;intnum;floatscore;publicStudent(Stringname,intnum,floatscore){super();this.name=name;this.num=num;this.score=score;}}程序代码(所有代码使用CourierNew的10号字体,添加必要的注释):