java实验4.doc_第1页
java实验4.doc_第2页
java实验4.doc_第3页
java实验4.doc_第4页
java实验4.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验四 流、文件及基于文本的应用一、实验目的1) 理解数据流的概念。2) 理解java流的层次结构。3) 理解并掌握文件的读写操作方法。二、实验内容1) 编写一个java application程序,接受用户输入的10个整数,比较并输出其中的最大值和最小值。四、实验原理1)字节流和字符流java的输入/输出流中,根据它们的数据类型,主要可分为两类:字符流(character stream)和字节流(btye stream)。(1)字符流 字符流的输入/输出数据是字符码,即unicode字符。字符流有两个基本类:reader类和writer类。reader类用于处理字符输入流,writer类用于处理字符输出流。(2)字节流 字节流是按字节读/写二进制数据。字节流有两个基本的类:inputstream类和outputstream类。inputstream类用于处理字节输入流,outputstream类用于处理字节输出流。 2)节点流和处理流按照流是否直接与特定的地方(如磁盘、内存等)相连,分为节点流与处理流。(1)节点流:可以从或者向一个特定的地方(节点)读写数据。如文件流filereader。(2)处理流:是对一个已经存在的流的连接和封装,通过所封装的流的功能调用实现数据读、写功能。处理流也称过滤流,如缓冲处理流bufferedreader。3)文件字节流(1)文件字节输入流 fileinputstream(文件字节输入流)主要用于文件的输入,通过该类创建的对象可以从文件中读数据。fileinputstream类提供的常用方法有: fileinputstream(string name) throws filenotfoundexception 创建一个关联到实际文件的文件字节输入流,name指定了要关联到的文件的路径名。如果该文件不存在或是不能被打开,将抛出一个filenotfoundexception异常。 fileinputstream(file file) throws filenotfoundexception 创建一个关联到实际文件的文件字节输入流,file是一个文件对象。如果该文件不存在或是不能被打开,将抛出一个filenotfoundexception异常 (2)文件字节输出流 fileoutputstream(文件字节输出流)主要用于文件的输出,通过该类创建的对象可以往文件中写数据。fileoutputstream类提供的常用方法有: fileoutputstream (string name) throws filenotfoundexception fileoutputstream (file file) throws filenotfoundexception fileoutputstream (string name, boolean append) throws filenotfoundexception fileoutputstream (file file, boolean append) throws filenotfoundexception4)字符文件流filereader用于文件的输入,该类以字符流的方式从文件中读数据。filereader类提供的常用方法有: filereader(string name) throws filenotfoundexception filereader (file file) throws filenotfoundexception filewriter用于文件的输出,该类以字符流的方式往文件中写数据。filewriter类提供的常用方法有: filewriter (string name) throws filenotfoundexception filewriter (string name, boolean append) throws filenotfoundexception filewriter (file file, boolean append) throws filenotfoundexception 5)java application命令行参数java application是用命令行来启动执行的,命令行参数就成为向java application传入数据的常用方式。在启动java应用程序时可以一次性的向应用程序中传递0到多个参数。格式为: java 类名 参数1 参数2 参数间用空格隔开,如果参数本身有空格,则要用一对双引号引起来。命令行参数被系统以string数组的方式传递给main方法,由参数args接收。六、思考题1)从一个文本文件student.txt中读入30个学生的姓名、专业、班级、java成绩,并实现如下功能(1)显示所有学生的成绩信息;(2)统计各个班级的最高分、最低分和平均分,并将结果写入另外一个文件studenttj.txt;(3)将所有学生信息写入access数据库,数据库自己建立。(可选)源程序:import java.io.*;import java.util.*;public class maxminclassstatic int maxint (int data,int n)int h=0; for(int i=0;idatah ) h=i; return h; static int minint (int data,int n)int h=0; for(int i=0;in;i+) if(dataidatah ) h=i; return h; public static void main( string args)string s=;int i=0;int data=new int10;system.out.println(请输入10个整数,以空格作为分隔符:);trybufferedreader in=new bufferedreader(new inputstreamreader(system.in);s=in.readline();catch (ioexception e) system.out.println(你已经输入的10个整数为:+s);stringtokenizer st=new stringtokenizer (s);while (st.hasmoretokens()datai=integer.parseint(st.nexttoken();i+;system.out.println(十个数中的最大的数为:+datamaxint (data,10);system.out.println(十个数中的最大的数为:+dataminint (data,10);import java.io.*;import java.util.*;class maxminclassstatic int maxint (float data,int n)int h=0; for(int i=0;idatah ) h=i; return h; static int minint (float data,int n)int h=0; for(int i=0;in;i+) if(dataidatah ) h=i; return h; static float average (float data,int n)float h=0; for(int i=0;in;i+) h+=datai; h=h/n; return h; class student string name;string zhuanye;string banji;float chenji;student(string name,string zhuanye,string banji,float chenji)=name;this.zhuanye=zhuanye;this.banji=banji;this.chenji=chenji;public string tostring()return 姓名:++ 专业:+this.zhuanye+ 班级:+this.banji+ 成绩:+this.chenji;public class testfilestatic string tostring(float a,float b,float c)return 最高分为+a+ 最低分为+b+ 平均分为+c+rn;public static void main(string args) throws exceptionfile f=new file(f:student.txt);string data=new string30;student s=new student30; bufferedreader in=new bufferedreader(new inputstreamreader(new fileinputstream(f); for(int i=0;i30;i+) datai=in.readline();/ system.out.println(datai); in.close();for(int i=0;i30;i+) stringtokenizer st=new stringtokenizer(datai); / system.out.println(st.counttokens(); si=new student(st.nexttoken(),st.nexttoken(),st.nexttoken(),integer.parseint(st.nexttoken(); system.out.println(si);int m=0,n=0,q=0;float data1=new float20;float data2=new float20;float data3=new float20;for(int i=0;i30;i+)if(si.banji.equalsignorecase(01)data1n=si.chenji;n+;if(si.banji.equalsignorecase(02)data2m=si.chenji;m+;if(si.banji.equalsignorecase(03)data3q=si.chenji;q+;system.out.println(班级01班的最高分:+data1maxminclass.maxint (data1,n);system.out.println(班级01班的最低分:+data1maxminclass.minint (data1,n);system.out.println(班级01班的平均分:+maxminclass.average(data1, n);system.out.println(班级02班的最高分:+data2maxminclass.maxint (data2,m);system.out.println(班级02班的最低分:+data2maxminclass.minint (data2,m);system.out.println(班级02班的平均分:+maxminclass.average(data2, m);system.out.println(班级03班的最高分:+data3maxminclass.maxint (data3,q);system.out.println(班级03班的最低分:+data3maxminclass.minint (data3,q);system.out.println(班级03班的平均分:+maxminclass.average(data3, q);fileoutputstream fos=new fileoutputstream(f:studenttj.txt);bufferedoutputstream bos=new bufferedoutputstream(fos);bos.write(班级01班:.getbytes();string sa=tostring(data1maxminclass.maxint (data1,n),data1maxminclass.minint (data1,n),maxminclass.average(data1, n);bos.write(sa.getbytes();bos.write(班级02班:.getbytes();string sa1=tostring(data2maxminclass.maxint (data2,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论