还剩19页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《Java语言程序设计》上机实验报告实验名称实验九班级软件工程133姓名陈超学号1130299452上机时间
2014.
12.11指导教师虞建东
1、实验内容或题目
1、编程编写应用程序,使用System.in.read方法读取用户从键盘输入的字节数据,回车后,把从键盘输入的数据存放到数组buffer中并将用户输入的数据保存为指定路径下的文件
2、编程编写应用程序,分别使用FileInputStream和FileReader类对象读取程序本身(或其他目录下的文件)并显示在屏幕上同时,比较两种方法的性能
3、编程编写应用程序,程序中创建一个文件输入流对象fis,读取当前目录下文本文件test
1.txt,该文件内容有如下两行文本Javaprogramiseasy.Ilikeit.从文件输入流fis中读取5个字节数据存放到数组b中,字节数据存放的位置从数组下标3开始,将读取的数据在屏幕输出
4、编程使用异常处理机制和输入/输出处理机制编写一个程序,实现当用户输入一个文件名时,判断这个文件名是否存在,若不存在,允许用户重新输入,直到输入了一个正确的文件名后,则打开这个文件并将文件中的内容输出到屏幕上【提示】
(1)定义从键盘接收数据的标准输入流对象和文件对象;
(2)在此文件对象的基础上建立缓冲文件输入流,如果文件不存在,通过异常处理机制显示错误的处理结果,并要求重新输入文件路径;
(3)如果输入的文件路径正确,使用缓冲文件输入流对象的方法将文件中的内容读取出来,并在屏幕上显示,然后退出整个程序
5、编程设计一个通讯录,保存读者信息要求通讯录中包括一般通讯录中的基本信息,也需要实现普通的检索功能通讯录写入文件中
6、编程一家杂货店的店主,需要查询、输入、修改任何一件商品的品名、价格、货存量信息请用随机存取文件满足其要求,可以更新、查询信息每件商品的标志为其记录号【提示】使用文件输入类FileReader只能将文件内容全部读入如果要选择读入文件的内容,可使用随机文件类RandomAccessFile
7、编程编写一个文件操作类FileOperate实现以下方法1创建指定的目录makeDirectory如果指定的目录的父目录不存在则创建其目录树上所有需要的父目录2清空指定目录中的所有文件emptyDirectory方法这个方法将尽可能删除所有的文件,但是只要有一个文件没有被删除都会返回false3listAll方法列出目录中的所有内容,包括其子目录中的内容4getTypePart方法得到指定目录下所有以某后缀命名的所有文件名5搜索文件SearchFile方法:搜索给定目录下的指定文件,支持模糊查询和深度搜索如:test.*,则返回所有以test.开头的文件名6拷贝文件Copy方法参数1fromFileName源文件名;参数2toFileName目标文件名;参数3override目标文件存在时是否覆盖,返回类型为boolean
2、实验目的与要求1.理解数据流的概念2.理解Java流的层次结构3.理解文件的概念
3、实验步骤与源程序1实验步骤a 编辑源文件b 编译c 运行2源代码【写出解决本次上机题目的源代码,并提供语句的注释;如程序过长则给出主要程序段并写出注释】题目1importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.*;publicclassAa{publicstaticvoidmainString[]argsthrowsIOException{BufferedReaderin=newBufferedReadernewInputStreamReaderSystem.in;Strings=in.readLine;byte[]buffer=s.getBytes;System.out.printlnbuffer;FileWriterf=newFileWriterD:\\
1.txt;BufferedWriterwriter=newBufferedWriterf;writer.writes;writer.close;}}题目2importjava.io.*;publicclassAa{publicstaticvoidmainString[]argsthrowsIOException{FileInputStreamin=newFileInputStreamD:/test.txt;byteb[]=newbyte
[1024];intlen1=in.readb;in.close;System.out.println内容为+newStringb0len1;Filef=newFileD:/test.txt;Readerinput=null;input=newFileReaderf;charc[]=newchar
[1024];intlen2=input.readc;input.close;System.out.println内容为+newStringc0len2;}}题目3importjava.io.File;importjava.io.FileInputStream;importjava.io.InputStream;publicclassIo{publicstaticvoidmainString[]argsthrowsException{//TODOAuto-generatedmethodstubFilefis=newFiled:+File.separator+test.txt;InputStreaminput=null;input=newFileInputStreamfis;byteb[]=newbyte
[8];intlen=input.readb35;input.close;forinti=3;ib.length;i++{System.out.printlncharb[i];}}}题目4importjava.io.*;importjava.util.Scanner;publicclassIo{publicstaticvoidmainString[]argsthrowsException{//TODOAuto-generatedmethodstubbooleantest=true;whiletest{System.out.println请输入文件名;Scannerin=newScannerSystem.in;Strings=in.next;Filef=newFiled:+s;iff.exists{test=false;try{InputStreaminput=null;input=newFileInputStreamf;byte[]b=newbyte
[1024];intlen=input.readb;System.out.println内容为+newStringb0len;}catchExceptione{System.out.printlne;}}}}}题目5importjava.io.BufferedOutputStream;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.FileReader;importjava.io.IOException;importjava.io.PrintWriter;importjava.util.Scanner;classAddList{privateStringfilePath=;privateStringbakPath=;privateStringcontent=;Scannersc=newScannerSystem.in;publicStringreadFile{content=;ifisNullfilePath{System.out.println文件存储路径;filePath=sc.nextLine;}Filefile=newFilefilePath;FileReaderfr=null;try{iffile.exists{fr=newFileReaderfile;char[]chars=newchar
[1024];intn=0;whilen=fr.readchars!=-1{Stringstring=newStringchars0n;content=content+string;}}else{System.out.println文件不存在;}}catchExceptione{e.printStackTrace;}finally{iffr!=null{try{fr.close;}catchIOExceptione{e.printStackTrace;}}}returncontent;}publicvoidwriteFileStringpath{Filefile=newFilepath;FileOutputStreamfos=null;mkDirspath;try{fos=newFileOutputStreamfile;BufferedOutputStreambos=newBufferedOutputStreamfos;PrintWriterpw=newPrintWriterbostrue;pw.printcontent;pw.flush;}catchFileNotFoundExceptione{e.printStackTrace;}finally{iffos!=null{try{fos.close;}catchIOExceptione{e.printStackTrace;}}}}publicvoidwriteFile{ifisNullfilePath{System.out.println文件存储路径;filePath=sc.nextLine;}Filefile=newFilefilePath;FileOutputStreamfos=null;mkDirsfilePath;try{fos=newFileOutputStreamfile;BufferedOutputStreambos=newBufferedOutputStreamfos;PrintWriterpw=newPrintWriterbostrue;pw.printcontent;pw.flush;}catchFileNotFoundExceptione{e.printStackTrace;}finally{iffos!=null{try{fos.close;}catchIOExceptione{e.printStackTrace;}}}}publicvoidmkDirsStringfilepath{iffilepath.indexOf\\!=-1{filepath=filepath.replaceAll\\/;}intn=filepath.indexOf//;Stringpath=filepath.substring0n+//;filepath=filepath.substringfilepath.indexOf//+1filepath.length;String[]files=filepath.split/;forinti=0;ifiles.length-1;i++{path=path+files[i];Filefile=newFilepath;if!file.exists{file.mkdir;}}}publicvoidaddImfor{System.out.println--------增加记录---------;Stringname=;Stringtel=;Stringemail=;content=readFile;whiletrue{System.out.println姓名;name=sc.next;System.out.println电话;tel=sc.next;System.out.printlnEmail;email=sc.next;content=content+name++tel++email+==;System.out.println
0、Exit
1、继续;inti=sc.nextInt;ifi==0{break;}}writeFile;}publicvoiddeleteImfor{System.out.println---------删除记录---------;Stringname=;String[]imfors=null;content=readFile;whiletrue{System.out.println你要删除的姓名是;name=sc.next;ifcontent.indexOfname!=-1{imfors=content.split==;forinti=0;iimfors.length;i++{ifimfors[i].indexOfname!=-1{imfors[i]=;}}content=;forinti=0;iimfors.length;i++{if!isNullimfors[i]{content=content+imfors[i]+==;}}writeFile;System.out.println删除成功;}else{System.out.println此人不存在;}System.out.println
0、Exit
1、继续;inti=sc.nextInt;ifi==0{break;}}}publicvoidviewAll{System.out.println----------显示所有------------;content=readFile;if!isNullcontent{String[]imfors=content.split==;System.out.println姓名\t电话\tEmail;forinti=0;iimfors.length;i++{String[]imfor=imfors[i].split;forintj=0;jimfor.length;j++{System.out.printimfor[j]+\t;}System.out.println;}}else{System.out.println暂时还没有记录;}}publicvoidqueryImfor{System.out.println----------查找记录-----------;content=readFile;if!isNullcontent{Stringresult=;String[]imfors=null;String[]imfor=null;Stringname=;booleanbool=false;whiletrue{result=;System.out.println请输入关键字(按姓名查找);name=sc.next;bool=false;ifcontent.indexOfname!=-1{imfors=content.split==;forinti=0;iimfors.length;i++{ifimfors[i].indexOfname!=-1{imfor=imfors[i].split;ifimfor
[0].equalsname{bool=true;result=result+imfors[i]+==;}}}ifbool{imfors=result.split==;System.out.println姓名\t电话\tEmail;forinti=0;iimfors.length;i++{imfor=imfors[i].split;forintj=0;jimfor.length;j++{System.out.printimfor[j]+\t;}System.out.println;}}else{System.out.println无此人信息;}}else{System.out.println无此人信息;}System.out.println
0、Exit
1、继续;inti=sc.nextInt;ifi==0{break;}}}else{System.out.println文件还没有记录;}}publicvoidcopy{System.out.println----------备份-----------;content=readFile;ifisNullbakPath{System.out.println备份全路径;bakPath=sc.next;}writeFilebakPath;System.out.println备份成功;}publicbooleanisNullStringstring{ifnull==string||==string||0==string.length{returntrue;}else{returnfalse;}}publicstaticvoidmainString[]args{AddListadd=newAddList;Scannersc=newScannerSystem.in;intoperater=0;whiletrue{System.out.println选择功能\n
1、增加记录
2、删除记录
3、显示所有
4、查询记录
5、备份
6、退出;operater=sc.nextInt;if1==operater{add.addImfor;}elseif2==operater{add.deleteImfor;}elseif3==operater{add.viewAll;}elseif4==operater{add.queryImfor;}elseif5==operater{add.copy;}elseif6==operater{System.out.println谢谢使用;break;}}}}
4、测试数据与实验结果(可以抓图粘贴)题目1题目2题目3题目4。