java实验4.doc

上传人:文库蛋蛋多 文档编号:2386902 上传时间:2023-02-17 格式:DOC 页数:9 大小:266.50KB
返回 下载 相关 举报
java实验4.doc_第1页
第1页 / 共9页
java实验4.doc_第2页
第2页 / 共9页
java实验4.doc_第3页
第3页 / 共9页
java实验4.doc_第4页
第4页 / 共9页
java实验4.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《java实验4.doc》由会员分享,可在线阅读,更多相关《java实验4.doc(9页珍藏版)》请在三一办公上搜索。

1、实验四 流、文件及基于文本的应用一、实验目的1) 理解数据流的概念。2) 理解Java流的层次结构。3) 理解并掌握文件的读写操作方法。二、实验内容1) 编写一个java Application程序,接受用户输入的10个整数,比较并输出其中的最大值和最小值。四、实验原理1)字节流和字符流Java的输入/输出流中,根据它们的数据类型,主要可分为两类:字符流(Character Stream)和字节流(Btye Stream)。(1)字符流 字符流的输入/输出数据是字符码,即Unicode字符。字符流有两个基本类:Reader类和Writer类。Reader类用于处理字符输入流,Writer类用于

2、处理字符输出流。(2)字节流 字节流是按字节读/写二进制数据。字节流有两个基本的类:InputStream类和OutputStream类。InputStream类用于处理字节输入流,OutputStream类用于处理字节输出流。 2)节点流和处理流按照流是否直接与特定的地方(如磁盘、内存等)相连,分为节点流与处理流。(1)节点流:可以从或者向一个特定的地方(节点)读写数据。如文件流FileReader。(2)处理流:是对一个已经存在的流的连接和封装,通过所封装的流的功能调用实现数据读、写功能。处理流也称过滤流,如缓冲处理流BufferedReader。3)文件字节流(1)文件字节输入流 Fil

3、eInputStream(文件字节输入流)主要用于文件的输入,通过该类创建的对象可以从文件中读数据。FileInputStream类提供的常用方法有: FileInputStream(String name) throws FileNotFoundException 创建一个关联到实际文件的文件字节输入流,name指定了要关联到的文件的路径名。如果该文件不存在或是不能被打开,将抛出一个FileNotFoundException异常。 FileInputStream(File file) throws FileNotFoundException 创建一个关联到实际文件的文件字节输入流,file是

4、一个文件对象。如果该文件不存在或是不能被打开,将抛出一个FileNotFoundException异常 (2)文件字节输出流 FileOutputStream(文件字节输出流)主要用于文件的输出,通过该类创建的对象可以往文件中写数据。FileOutputStream类提供的常用方法有: FileOutputStream (String name) throws FileNotFoundException FileOutputStream (File file) throws FileNotFoundException FileOutputStream (String name, boolean

5、 append) throws FileNotFoundException FileOutputStream (File file, boolean append) throws FileNotFoundException4)字符文件流FileReader用于文件的输入,该类以字符流的方式从文件中读数据。FileReader类提供的常用方法有: FileReader(String name) throws FileNotFoundException FileReader (File file) throws FileNotFoundException FileWriter用于文件的输出,该类以

6、字符流的方式往文件中写数据。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 applicat

7、ion传入数据的常用方式。在启动java应用程序时可以一次性的向应用程序中传递0到多个参数。格式为: java 类名 参数1 参数2 参数间用空格隔开,如果参数本身有空格,则要用一对双引号引起来。命令行参数被系统以String数组的方式传递给main方法,由参数args接收。六、思考题1)从一个文本文件Student.txt中读入30个学生的姓名、专业、班级、java成绩,并实现如下功能(1)显示所有学生的成绩信息;(2)统计各个班级的最高分、最低分和平均分,并将结果写入另外一个文件StudentTj.txt;(3)将所有学生信息写入Access数据库,数据库自己建立。(可选)源程序:impo

8、rt 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 int1

9、0;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+;Sys

10、tem.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+) i

11、f(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)this.name=name;this.zhuanye=zhuanye;this.banji

12、=banji;this.chenji=chenji;public String toString()return 姓名:+this.name+ 专业:+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:Studen

13、t.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.

14、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+

15、;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.

16、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 (

17、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),Ma

18、xMinClass.average(data1, n);bos.write(sa.getBytes();bos.write(班级02班:.getBytes();String sa1=ToString(data2MaxMinClass.maxint (data2,m),data2MaxMinClass.minint (data2,m),MaxMinClass.average(data2, m);bos.write(sa1.getBytes();bos.write(班级03班:.getBytes();String sa2=ToString(data3MaxMinClass.maxint (data3,q),data3MaxMinClass.minint (data3,q),MaxMinClass.average(data3, q);bos.write(sa2.getBytes();bos.close();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备2025010119号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000987号