Java实验分析指导-io流.doc
《Java实验分析指导-io流.doc》由会员分享,可在线阅读,更多相关《Java实验分析指导-io流.doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验实验 4:输入输出流:输入输出流一、实验目的一、实验目的1.理解 I/O 流的概念,掌握其分类,掌握 Java I/O 基本原理。 2.掌握对硬盘上的文件和目录进行操作的基本方法。 3.掌握 FileInputStream、FileOutputStream 类的基本使用方法。 4.掌握 FileReader 类 、FileWriter 类的使用。 5.掌握 BufferedWriter 类 、BufferedWriter 类的使用。 6.掌握 RandomAccessFile 类的使用。 7.掌握对象序列化的方法及 ObjectInputStream、ObjectOutputStream
2、类的基本使 用方法。二、实验要求二、实验要求本次实验要求以 Eclipse 为开发平台。三、实验内容与步骤三、实验内容与步骤1编写一个 Java Application 程序,实现如下的设计功能:运行该程序可以列出当前目录下的所有文件。 import java.io.*;public class sy1 public static void main(String args)File file= new File(“D:“);file.mkdir();Filef1=file.listFiles();for(int i=0;if1.length;i+)if(f1i.isDirectory()Sy
3、stem.out.println(“dirctory is“+f1i.getName();elseSystem.out.println(“flie is“+f1i.getName();2编写一个 Java Application 程序(文件名为 CopyFile.java) ,要求通过字节流从该文件中读取数据并写入到“temp.txt”文件中去,实现该文件的复制。 import java.io.*;public class CopyFile public static void main(String args)int a;byte b=“你好吗,逗比“.getBytes();tryFileO
4、utputStream out=new FileOutputStream(“D:jdk1.8.0_20新建文件夹zzjsrczzjtemp.txt“);out.write(b);out.close();catch(IOException e)System.out.println(“error“+e);3编写一个程序(文件名为 ReadExample.java) ,将程序文件本身的内容每行开头添加上 行号拷贝到另一个文件 tempfile.txt 中。import java.io.*;public class ReadExample public static void main(String
5、args)int a;char b=new char18;tryFile f=new File(“D:jdk1.8.0_20新建文件夹zzjsrczzjReadExample.java“);FileReader in=new FileReader(f);FileWriter out=new FileWriter(“D:jdk1.8.0_20新建文件夹zzjsrczzjtempfile.txt“);while(a=in.read(b,0,18)!=-1)String s=new String(b,0,18);out.write(b);System.out.print(b);in.close();
6、out.close();catch(IOException e)System.out.println(“error“+e);4现在有如下格式的学生成绩单(文本格式)score.txt: 姓名:张三,数学 72 分,物理 67 分,英语 70 分. 姓名:李四,数学 92 分,物理 98 分,英语 88 分. 姓名:周五,数学 68 分,物理 80 分,英语 77 分.要求按行读入成绩单,并在该行的后面加上该运动员的总成绩,然后再将该行写入到 一个名字为 socreAnalysis.txt 的文件中。请按如下的程序模板中的要求,将【代码】替 换为 Java 程序代码,以完成该程序。Fenxi.j
7、ava 文件清单:import java.util.*; public class Fenxi public static int getTotalScore(String s) String regex=“0123456789“ ; /匹配非数字的正则表达式String digitMess=s.replaceAll(regex,“*“); StringTokenizer fenxi = new StringTokenizer(digitMess,“*“);int totalScore=0;while(fenxi.hasMoreTokens()int score = Integer.parse
8、Int(fenxi.nextToken();totalScore = totalScore+score; return totalScore; AnalysisResult.java 文件清单:import java.io.*; import java.util.*; public class AnalysisResult public static void main(String args) File fRead = new File(“score.txt“);File fWrite = new File(“socreAnalysis.txt“);try Writer out = 【代码
9、1】/创建指向文件 fWrite 的文件输出流对象 outBufferedWriter bufferWrite = 【代码 2】/创建指向 out 的 bufferWrite 流Reader in = 【代码 3】/创建指向文件 fRead 的文件输入流对象 inBufferedReader bufferRead =【代码 4】/创建指向 in 的缓冲流String str = null;while(str=bufferRead.readLine()!=null) int totalScore=Fenxi.getTotalScore(str);str = str+“总成绩:“+totalSco
10、re;System.out.println(str);bufferWrite.write(str);bufferWrite.newLine();bufferRead.close();bufferWrite.close(); catch(IOException e) System.out.println(e.toString(); class AnalysisResult public static void main(String args) File fRead = new File(“D:jdk1.8.0_20新建文件夹zzjsrczzjscore.txt“);File fWrite =
11、new File(“D:jdk1.8.0_20新建文件夹zzjsrczzjsocreAnalysis.txt“);try Writer out =new FileWriter(fWrite);BufferedWriter bufferWrite =new BufferedWriter(out);Reader in =new FileReader(fRead);BufferedReader bufferRead =new BufferedReader(in);String str = null;while(str=bufferRead.readLine()!=null) int totalSco
12、re=Fenxi.getTotalScore(str);str = str+“总成绩:“+totalScore;System.out.println(str);bufferWrite.write(str);bufferWrite.newLine();bufferRead.close();bufferWrite.close(); catch(IOException e) System.out.println(e.toString();5编写一个程序,利用缓冲流实现接收键盘输入的数据,并写入到指定文件中(如当前目 录下的 tt.txt 文件)的功能,要求键盘输入”exit”时结束。 (提示:)im
13、port java.io.*; import java.util.Scanner; public class sy5 public static void main(String args) Scanner sc=new Scanner(System.in); String s = sc.next(); try FileWriter out=new FileWriter(“D:jdk1.8.0_20新建文件夹zzjsrczzjtt.txt“); while(s=“exit“) BufferedWriter br=new BufferedWriter(out); br.write(s); s=s
14、c.next(); catch(IOException e) System.out.println(“error“+e); 6下面的程序使用随机流进行文件的保存和读取,请按如下的程序模板中的要求,将【代 码】替换为 Java 程序代码,以完成该程序,使得程序在控制台的输出结果如下:程序清单:import java.io.*; public class testRandom2 public static void main(String args) try RandomAccessFile rf = new RandomAccessFile(“rtest.dat“, “rw“); for (in
15、t i = 0; i 10; i+) rf.writeInt(i); rf.writeDouble(i * 1.414); rf.close(); rf = new RandomAccessFile(“rtest.dat“, “rw“);rf.seek (【代码1】);rf.writeInt(47); rf.writeDouble(47.00021); rf.close(); rf = new RandomAccessFile(“rtest.dat“, “r“); for (int i = 0; i 10; i+) ; System.out.println(“Value “ + rf.read
16、Int() + “: “ +【代码2】); rf.【代码3】; catch (IOException e) System.out.println(e.toString(); import java.io.*;public class testRandom2 public static void main(String args) try RandomAccessFile rf = new RandomAccessFile(“rtest.dat“, “rw“);for (int i = 0; i 10; i+) rf.writeInt(i);rf.writeDouble(i * 1.414);r
17、f.close();rf = new RandomAccessFile(“rtest.dat“, “rw“);rf.seek (0);rf.writeInt(47);rf.writeDouble(47.00021);rf.close();rf = new RandomAccessFile(“rtest.dat“, “r“);for (int i = 0; i 10; i+) ;System.out.println(“Value “ + rf.readInt() + “: “+rf.readDouble();rf.close(); catch (IOException e) System.out
18、.println(e.toString();7. 下面的程序使用对象的序列化及对象流进行对象的保存和读取,请按如下的程序模板中 的要求,将【代码】替换为 Java 程序代码,以完成该程序。 程序清单:import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable;public cla
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 实验 分析 指导 io
限制150内