实验4:输入输出流
一、实验目的
1. 2. 3. 4. 5. 6. 7.
理解I/O流的概念,掌握其分类,掌握Java I/O基本原理。 掌握对硬盘上的文件和目录进行操作的基本方法。
掌握FileInputStream、FileOutputStream类的基本使用方法。 掌握FileReader类 、FileWriter类的使用。
掌握BufferedWriter类 、BufferedWriter类的使用。 掌握RandomAccessFile类的使用。
掌握对象序列化的方法及ObjectInputStream、ObjectOutputStream类的基本使用方法。
二、实验要求
本次实验要求以Eclipse为开发平台。
三、实验内容与步骤
1.编写一个Java Application程序,实现如下的设计功能:运行该程序可以列出当前目录下的所有文件。
import java.io.*; public class sy1 {
public static void main(String args[]){ } }
File file= new File(\); file.mkdir();
File[]f1=file.listFiles(); for(int i=0;i if(f1[i].isDirectory()){ } else{ } System.out.println(\+f1[i].getName()); System.out.println(\+f1[i].getName()); 2.编写一个Java Application程序(文件名为CopyFile.java),要求通过字节流从该文件中读取数据并写入到“temp.txt”文件中去,实现该文件的复制。 import java.io.*; public class CopyFile { public static void main(String args[]){ 1 } } int a;byte[] b=\你好吗,逗比\.getBytes(); try{ FileOutputStream out=new FileOutputStream(\新建 文件夹\\\\zzj\\\\src\\\\zzj\\\\temp.txt\); out.write(b); } out.close(); } System.out.println(\+e); catch(IOException e){ 3.编写一个程序(文件名为ReadExample.java),将程序文件本身的内容每行开头添加上行号拷贝到另一个文件tempfile.txt中。 import java.io.*; public class ReadExample { } public static void main(String args[]){ } int a;char[] b=new char[18]; try{ } File f=new File(\新建文件夹FileReader in=new FileReader(f); FileWriter out=new FileWriter(\新建文件夹while((a=in.read(b,0,18))!=-1){ String s=new String(b,0,18); out.write(b); System.out.print(b); } \\\\zzj\\\\src\\\\zzj\\\\ReadExample.java\); \\\\zzj\\\\src\\\\zzj\\\\tempfile.txt\); in.close(); out.close(); } System.out.println(\+e); catch(IOException e){ 2 4.现在有如下格式的学生成绩单(文本格式)score.txt: 姓名:张三,数学72分,物理67分,英语70分. 姓名:李四,数学92分,物理98分,英语88分. 姓名:周五,数学68分,物理80分,英语77分. 要求按行读入成绩单,并在该行的后面加上该运动员的总成绩,然后再将该行写入到一个名字为socreAnalysis.txt的文件中。请按如下的程序模板中的要求,将【代码】替换为Java程序代码,以完成该程序。 Fenxi.java文件清单: import java.util.*; public class Fenxi { public static int getTotalScore(String s) { String regex=\匹配非数字的正则表达式 String digitMess=s.replaceAll(regex,\ StringTokenizer fenxi = new StringTokenizer(digitMess,\ int totalScore=0; while(fenxi.hasMoreTokens()){ int score = Integer.parseInt(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(\ File fWrite = new File(\ try{ Writer out = 【代码1】//创建指向文件fWrite的文件输出流对象out BufferedWriter bufferWrite = 【代码2】//创建指向out的bufferWrite流 Reader in = 【代码3】//创建指向文件fRead的文件输入流对象in BufferedReader bufferRead =【代码4】//创建指向in的缓冲流 String str = null; while((str=bufferRead.readLine())!=null) { int totalScore=Fenxi.getTotalScore(str); str = str+\总成绩:\ System.out.println(str); bufferWrite.write(str); bufferWrite.newLine(); } bufferRead.close(); bufferWrite.close(); } catch(IOException e) { 3 System.out.println(e.toString()); } } } class AnalysisResult { public static void main(String args[]) { File fRead = new File(\新建文件夹\\\\zzj\\\\src\\\\zzj\\\\score.txt\); File fWrite = new File(\新建文件夹\\\\zzj\\\\src\\\\zzj\\\\socreAnalysis.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 totalScore=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”时结束。 (提示:) import java.io.*; import java.util.Scanner; public class sy5 { 4 public static void main(String args[]) { Scanner sc=new Scanner(System.in); String s = sc.next(); try{ FileWriter out=new FileWriter(\新建文件夹\\\\zzj\\\\src\\\\zzj\\\\tt.txt\ while(s==\ BufferedWriter br=new BufferedWriter(out); br.write(s); s=sc.next(); } } catch(IOException e){ System.out.println(\ } } } 6.下面的程序使用随机流进行文件的保存和读取,请按如下的程序模板中的要求,将【代码】替换为Java程序代码,以完成该程序,使得程序在控制台的输出结果如下: 程序清单: import java.io.*; public class testRandom2 { public static void main(String args[]) { try { RandomAccessFile rf = new RandomAccessFile(\ for (int i = 0; i < 10; i++) { rf.writeInt(i); rf.writeDouble(i * 1.414); } rf.close(); rf = new RandomAccessFile(\ 5 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Java实验指导(4)-io流在线全文阅读。
相关推荐: