《Java语言程序设计》实验报告实验序号:06实验项目名称:学号姓名专业、班实验地点文波指导教师韩志龙时间一、实验目的及要求理解泛型、集合以及JavaIO流等概念,学习并掌握相关的类及其方法的使用二、实验设备(环境)myEclipse10.0三、实验内容与步骤1、输入一个文件系统的子目录,编程序将其中的所有内容的名字输出到console上,要求:a、使用泛型的动态数组作为工具;b、使用课本195页的File对象及其方法;c、将此子目录下的所有子目录(可能有很多层)及其中的所有文件的文件名输出;d、输出目录名和文件名时,用前缀空格显示出层次关系;2、设计一个小英汉词典,其中英文单词的个数为30(单词可自己任选),编程序,从键盘输入单词,程序将单词的中文解释输出,若没有找到,则输出:notfoundinourdictionary!3、选择泛型集合类中的链表类,用此类:a、随机产生100个整数(范围自定)的链表,在生成的过程中从小到大排列,然后输出;b、随机产生100个6个英文字母的单词的链表,在生成的过程中从小到大排列,然后用链表方式输出。4、查看文本文件SomeData.txt中的数据并分析其格式,用JavaI0api将其中的所有数据读出,计算出每一行的后4列数据的平均值,存放到新文件AvgSomeData.txt文件中,存放时每一行前面要加上行号(行号占3位,右对齐),平均值放到行末并左对齐。提示:SomeData中的分隔符是“\t”将一个浮点数,格式化成一个只有两位小数的字符串用字符串“%1$4.2f”比如:String.format(“%1$4.2f”,3456.78909)结果是:3456.78四、实验结果与数据处理第一题:importjava.io.File;importjava.util.ArrayList;publicclassexp1{publicstaticvoidmain(String[]args){intblank=1;//记录前缀,以便层次分明ArrayListIntegerblanks=newArrayListInteger();FilemyFile=newFile(D:\\MyEclipse10\\workspaces\\Exp6);ArrayListFilelist=newArrayListFile();list.add(myFile);//将文件按顺序放在listblanks.add(blank);for(inti=0;ilist.size();i++){//用循环不断进行筛选文件和目录if(list.get(i).isDirectory()){blank=blanks.get(i)+2;FilechildFile[]=list.get(i).listFiles();for(intj=0;jchildFile.length;j++){list.add(i+j+1,childFile[j]);blanks.add(i+j+1,blank);}}}for(inti=0;ilist.size();i++){for(intj=0;jblanks.get(i);j++){System.out.print();}System.out.println(-+list.get(i).getName());}System.out.println();}}第二题:importjava.io.*;importjava.util.*;importjava.util.Scanner;publicclassexp2{publicstaticvoidmain(String[]args)throwsIOException{String[]words={again,apple,banana,back,cat,crack,dog,double,example,exam,fork,fox,google,glad,hello,hi,input,ios,jack,jump,keven,king,language,lung,mother,mom,none,neither,open,object};//39个单词String[]meanings={又,再,苹果,香蕉,背后,猫,使破裂,狗,双,两,例子,考试,叉子,狐狸,谷歌,高兴,你好,问候语,你好,问候语(口语),输入,苹果操作系统,杰克,跳高,凯文,王子,语言,肺,妈妈,妈妈(口语),没有,空,也不,打开,开放,物体};MapString,Stringdictionary=newTreeMapString,String();StringuserWord;for(inti=0;iwords.length;i++){dictionary.put(words[i],meanings[i]);}System.out.println(pleaseinputthewordyouwanttofindinthedictionary:);Scannerinput=newScanner(System.in);userWord=input.next();if(dictionary.get(userWord)!=null)System.out.println(dictionary.get(userWord));elseSystem.out.println(notfoundinourdictionary!);}}第三题:importjava.util.*;publicclassexp3{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstublink100Int();System.out.println();link100Word();}publicstaticvoidlink100Int(){//a、随机产生100个整数(范围自定)的链表,在生成的过程中从小到大排列,然后输出LinkedListIntegerlinkInt=newLinkedListInteger();Randomrandom=newRandom();for(inti=0;i100;i++){linkInt.add(random.nextInt(1000));//链表不断添加随机生成的数}Collections.sort(linkInt);System.out.println(整数排序后);for(inti=0;i100;i++){System.out.print(linkInt.get(i)+\t);if((i+1)%10==0)System.out.println();}}publicstaticvoidlink100Word(){//b、随机产生100个6个英文字母的单词的链表,在生成的过程中从小到大排列,然后输出。LinkedListStringlinkStr=newLinkedListString();for(inti=0;i100;i++){//链表不断添加随机生成的英文字母StringBufferstr=newStringBuffer();str.setLength(0);for(intj=0;j6;j++){inttemp=97+(int)(Math.random()*26);str.append((char)temp);}linkStr.add(str.toString());}Collections.sort(linkStr);System.out.println(英文单词排序后);for(inti=0;i100;i++){System.out.print(linkStr.get(i)+\t);if((i+1)%10==0)System.out.println();}}}classLinkNodeT{/*设计一个链表结点类LinkNode,此类可以存放int、long、float、double、byte、short、String、*StringBuffer类型的数据*/publicTvalue;//用object使此类可以存放int、long、float、double、byte、short、String、*StringBuffer类型的数据publicLinkNodeTnextNode;publicLinkNode(Tobj){value=obj;nextNode=null;}publicvoiddisplay(){System.out.print(value);}}第四题:/*查看文本文件SomeData.txt中的数据并分析其格式,用JavaI0api将其中的所有数据读出,*计算出每一行的后4列数据的平均值,存放到新文件AvgSomeData.txt文件中,存放时每一行前面要加上行号*(行号占3位,右对齐),平均值放到行末并左对齐。提示:SomeData中的分隔符是“\t”将一个浮点数,格式化成一个只有两位小数的字符串用字符串“%1$4.2f”比如:String.format(“%1$4.2f”,3456.78909)结果是:3456.78*/importjava.io.*;publicclassexp4{publicstaticvoidmain(String[]args){FileReadermyReader;BufferedReadermyIn;FileWritermyWriter;BufferedWritermyOut;Stringstr=null;String[]avg=newString[7];//存放数据原有的后三列数据floataverage;//计算平均值Stringline=;intcounter=1;//计算行数try{myReader=newFileReader(SomeData.txt);myIn=newBufferedReader(myReader);myWriter=newFileWriter(AvgSomeData.txt);myOut=newBufferedWriter(myWriter);while((str=myIn.readLine())!=null){avg=str.toString().split(\t);//将\t略过average=(Float.parseFloat(avg[3])+Float.parseFloat(avg[4])+Float.parseFloat(avg[5])+Float.parseFloat(avg[6]))/4;line=String.format(%1$3d,counter)+\t+str+\t+String.format(%1$4.2f,average)+\n;System.out.print(line);myOut.write(line);counter++;}myIn.close();myReader.close();myOut.close();myWriter.close();}catch(IOExceptione){System.out.println(there'ssomethingwrongwiththefile);return;}}}第一题:-Exp6-.classpath-.project-.settings-org.eclipse.jdt.core.prefs-AvgSomeData.txt-bin-Content.class-exp1.class-exp2.class-exp3.class-exp4.class-exp5.class-LinkNode.class-dictionary.txt-SomeData.txt-src-AvgSomeData.txt-exp1.java-exp2.java-exp3.java-exp4.java-exp5.java第二题:pleaseinputthewordyouwanttofindinthedictionary:hello你好,问候