Java阶段性测试--第四五六大题参考代码
2017-05-03 16:02
471 查看
第四题:.此题要求用IO流完成
使用File类在D盘下创建目录myFiles, 并在myFiles目录下创建三个文件分别为:info1.txt, info2.txt, info3.txt 。代码:
package Test3; import java.io.File; import java.io.IOException; public class Test1 { public static void main(String[] args) { File file=new File("D:\\myFiles"); if(!file.exists()){ file.mkdirs(); } for (int i = 1; i <= 3; i++) { File file2=new File(file,"info"+i+".txt"); try { file2.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } File[] files=file.listFiles(); for (File file2 : files) { System.out.println(file2); } } }
2.向info1.txt, info2.txt, info3.txt 中分别追加内容“第一个文件内容,千锋欢迎你”,“第二个文件内容,中国移动培训专家”,“第三个文件内容,千锋助你高薪就业”。
代码:
package Test3; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class Test2 { public static void main(String[] args) { File file=new File("D:\\myFiles"); File[] files=file.listFiles(); String[] strings={"第一个文件内容,千锋欢迎你","第二个文件内容,中国移动培训专家","第三个文件内容,千锋助你高薪就业"}; FileOutputStream fos=null; for(int i=0;i<files.length;i++){ try { fos=new FileOutputStream(files[i]); fos.write(strings[i].getBytes()); fos.flush(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { if(fos!=null){ try { fos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } } }
3.把info1.txt , info2.txt,
169cb
info3.txt 用String类中的方法截取到 文件名字,不包括拓展名,将名字变成大写,并且给文件重命名成为 INFO1.txt,INFO2.txt ,INFO3.txt,并复制到myFiles\txt目录下(须用程序创建txt文件夹)
代码:
package Test3; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class Test3 { public static void main(String[] args) { File file=new File("D:\\myFiles"); String[] strings=file.list(); File file2=new File("D:\\myFiles\\txt"); if(!file2.exists()){ file2.mkdirs(); } for (String string : strings) { if(string.endsWith(".txt")){ //获取文件名 String string2=string.substring(0, 5); //重命名 File file3=new File(file,string); file3.renameTo(new File(file,string2.toUpperCase()+".txt")); //复制新文件到txt文件夹下 FileInputStream fis=null; FileOutputStream fos=null; try { fis=new FileInputStream(file3); fos=new FileOutputStream(new File(file2,string2.toUpperCase()+".txt")); byte[] bs=new byte[50]; int count=0; while((count=fis.read(bs))!=-1){ fos.write(bs, 0, count); fos.flush(); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { if(fis!=null){ try { fis.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(fos!=null){ try { fos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } } } }
4.键盘输入一个关键字“千锋”,列出myFiles目录下包含“千锋”关键字的文件
代码:
package Test3; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Scanner; //4.键盘输入一个关键字“千锋”,列出myFiles目录下包含“千锋”关键字的文件(8分) public class Test4 { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("请输入关键字:"); String string=scanner.next(); //读取每个文件内容进行匹配 File file=new File("D:\\myFiles"); FileInputStream fis=null; File[] files=file.listFiles(); //遍历myFiles下的文件 for (File file2 : files) { if(file2.isFile()){ // System.out.println(file2); try { fis=new FileInputStream(file2); byte[] bs=new byte[50]; int count=0; //字符串用于存储文件所有内容 String string2=""; while((count=fis.read(bs))!=-1){ string2+=new String(bs, 0, count); } // System.out.println(string2); //进行匹配 if(string2.contains(string)){ System.out.println(file2+" 包含关键字:"+string); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { if(fis!=null){ try { fis.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } } scanner.close(); } }
5.递归删除myFiles目录,并记录删除的信息,格式为 “INFO1.txt 删除成功(失败) 2015-8-10 10:20:30”.将文件保存到D:\log.txt中,(注意:log.txt文件不要提交)
代码:
package Test3; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.text.SimpleDateFormat; /** * 递归删除myFiles目录,并记录删除的信息,格式为 “INFO1.txt 删除成功(失败) * 2015-8-10 10:20:30”.将文件保存到D:\log.txt中,(注意:log.txt文件不要提交) * @author Administrator * */ public class Test5 { public static void main(String[] args) { File file=new File("D:\\myFiles"); //创建log.txt File file2=new File("D:\\log.txt"); if(!file2.exists()){ try { file2.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //调用递归删除 remove(file, file2); } //递归删除myfile文件 public static void remove(File file,File txt){ if(file.isFile()){ boolean isSuccess=file.delete(); long l=System.currentTimeMillis(); //时间格式化 SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String string=format.format(l); FileOutputStream fos=null; try { fos=new FileOutputStream(txt,true); String pk=isSuccess?"删除成功":"删除失败"; String string2=file.getName()+pk+" "+string; System.out.println(string2); fos.write(string2.getBytes()); fos.flush(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { if(fos!=null){ try { fos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }else { File[] files=file.listFiles(); for (File file2 : files) { remove(file2,txt); } } } }
第五题.按要求完成如下功能
【1】创建一明星Star类,属性:star_No(明星编号)、star_Name(明星名字)、star_Masterpieces(明星的成名作)、star_Home(明星祖籍)、star_Marriage(明星婚否)、star_Info(明星信息);封要求所有属性封装,重写toString方法。 (4分)代码:
Star类
package Test4; import java.io.Serializable; import java.text.CollationKey; import java.text.Collator; /** * 创建一明星Star类,属性:star_No(明星编号)、star_Name(明星名字)、 * star_Masterpieces(明星的成名作)、star_Home(明星祖籍)、star_Marriage(明星婚否)、 * star_Info(明星信息);封要求所有属性封装,重写toString方法。 * @author Administrator * */ public class Star implements Comparable<Star>,Serializable { private static final long serialVersionUID = 1L; private int star_No; private String star_Name; private String star_Masterpieces; private String star_Home; private String star_Marriage; private String star_Info; public int getStar_No() { return star_No; } public void setStar_No(int star_No) { this.star_No = star_No; } public String getStar_Name() { return star_Name; } public void setStar_Name(String star_Name) { this.star_Name = star_Name; } public String getStar_Masterpieces() { return star_Masterpieces; } public void setStar_Masterpieces(String star_Masterpieces) { this.star_Masterpieces = star_Masterpieces; } public String getStar_Home() { return star_Home; } public void setStar_Home(String star_Home) { this.star_Home = star_Home; } public String getStar_Marriage() { return star_Marriage; } public void setStar_Marriage(String star_Marriage) { this.star_Marriage = star_Marriage; } public String getStar_Info() { return star_Info; } public void setStar_Info(String star_Info) { this.star_Info = star_Info; } @Override public String toString() { return "Star [star_No=" + star_No + ", star_Name=" + star_Name + ", star_Masterpieces=" + star_Masterpieces + ", star_Home=" + star_Home + ", star_Marriage=" + star_Marriage + ", star_Info=" + star_Info + "]"; } public Star(int star_No, String star_Name, String star_Masterpieces, String star_Home, String star_Marriage, String star_Info) { super(); this.star_No = star_No; this.star_Name = star_Name; this.star_Masterpieces = star_Masterpieces; this.star_Home = star_Home; this.star_Marriage = star_Marriage; this.star_Info = star_Info; } public Star() { super(); } //要求按照第一条件star_No明星编号升序排列,第二条件start_Name 降序排序 @Override public int compareTo(Star o) { if(this.star_No>o.star_No){ return 1; }else if(this.star_No<o.star_No){ return -1; }else { CollationKey key=Collator.getInstance().getCollationKey(this.star_Name); CollationKey key2=Collator.getInstance().getCollationKey(o.star_Name); int num=key.compareTo(key2); if(num>0){ return -1; }else if(num<0){ return 1; }else { return 0; } } } // (要求:明星编号和明星姓名和明星成名作相同的为同一明星) @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((star_Home == null) ? 0 : star_Home.hashCode()); result = prime * result + ((star_Info == null) ? 0 : star_Info.hashCode()); result = prime * result + ((star_Marriage == null) ? 0 : star_Marriage.hashCode()); result = prime * result + ((star_Masterpieces == null) ? 0 : star_Masterpieces.hashCode()); result = prime * result + ((star_Name == null) ? 0 : star_Name.hashCode()); result = prime * result + star_No; return result; } @Override public boolean equals(Object obj) { if(obj==null){ return false; } if(obj==this){ return true; } if(obj instanceof Star){ Star star=(Star) obj; if(this.star_No==star.star_No&&this.star_Name.equals(star.star_Name)&& this.star_Masterpieces.equals(star.star_Masterpieces)){ return true; } } return false; } }
【2】 根据下列提供的信息创建Star对象,将每个字符串中的字段所对应的值设置到对象属性中。
(1)star_No:10000001 star_Name:胡军 star_Masterpieces:天龙八部 star_Marriage:true star_Home:北京市Star_Info:胡军出生在北京的一个艺术世家,属于满族镶黄旗。父亲胡宝善是男中音歌唱家,母亲王亦满是话剧演员,伯父是著名的男高音歌唱家胡松华,2013年,担任北京东城区消防形象大使。
(2)star_No:10000002 star_Name:鹿晗 star_Masterpieces:重返20岁star_Marriage:false star_Home:北京市Star_Info:鹿晗(LU HAN),中国男演员、歌手。1990年4月20日出生于北京。2008年赴韩国留学期间在明洞逛街时被韩国SM娱乐公司星探发掘,签约成为旗下练习生。2012年4月以EXO组合主唱、领舞、门面担当身份正式出道,在中外各国迅速获得超高人气。
(3)star_No:10000011 star_Name:孙俪 star_Masterpieces:后宫甄嬛传star_Marriage:true star_Home:上海市 Star_Info:孙俪,本名孙丽,1982年9月26日出生于上海市,中国大陆女演员、歌手。5岁开始学舞蹈,11岁出访国外表演,15岁担任上海警备区文工团文艺兵3年;退伍后进入东方文化学院学习。
(4)star_No:10000101 star_Name:王宝强 star_Masterpieces:天下无贼 star_Marriage:true star_Home:河北省邢台市南和县Star_Info:王宝强,中国内地男演员,1984年5月29日出生于河北省邢台市,6岁时开始练习武术,8岁在嵩山少林寺做俗家弟子,20岁时主演独立电影《盲井》获金马奖最佳新人奖及法国、泰国电影节最佳男主角奖。
【3】创建用于存放明星对象的TreeMap<Star,String>,用于存放上述的几个明星,使用自然排序进行排序, 要求按照第一条件star_No明星编号升序排列,第二条件start_Name 降序排序(5分)
【4】使用HashMap<Star,String>集合进行存储,将Star对象作为键,value值为与该明星有关的作品名。 并遍历输出集合元素(要求:明星编号和明星姓名和明星成名作相同的为同一明星)。(5分)
【5】 要求在上题遍历集合时,要求编程实现在当前项目中, 根据获取的每个具体对象的star_Name为名称创建相应文件,将明星对象进行序列化保存
后面4小问的参考代码如下:
代码:
package Test4; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.util.HashMap; import java.util.Set; import java.util.TreeMap; public class Test1 { public static void main(String[] args) { //2根据下列提供的信息创建Star对象,将每个字符串中的字段所对应的值设置到对象属性中。 Star star=new Star(10000001, "胡军", "天龙八部", "北京市", "true", "胡军出生在北京的一个艺术世家,属于满族镶黄旗。" + "父亲胡宝善是男中音歌唱家,母亲王亦满是话剧演员,伯父是著名的男高音歌唱家胡松华,2013年,担任北京东城区消防形象大使。"); Star star2=new Star(10000002, "鹿晗", "重返20岁", "北京市", "false", "鹿晗(LU HAN),中国男演员、歌手。1990年4月20日出生于北京。2008年赴韩国留学期间在明洞逛街时被韩国SM娱乐公司星探发掘,签约成为旗下练习生。2012年4月以EXO组合主唱、领舞、门面担当身份正式出道,在中外各国迅速获得超高人气。"); Star star3=new Star(10000011, "孙俪", "后宫甄嬛传", "上海市", "true", "孙俪,本名孙丽,1982年9月26日出生于上海市,中国大陆女演员、歌手。5岁开始学舞蹈,11岁出访国外表演,15岁担任上海警备区文工团文艺兵3年;退伍后进入东方文化学院学习。"); Star star4=new Star(10000101, "王宝强", "天下无贼", "河北省邢台市南和县", "true", "王宝强,中国内地男演员,1984年5月29日出生于河北省邢台市,6岁时开始练习武术,8岁在嵩山少林寺做俗家弟子,20岁时主演独立电影《盲井》获金马奖最佳新人奖及法国、泰国电影节最佳男主角奖。"); //3.创建用于存放明星对象的TreeMap<Star,String>,用于存放上述的几个明星, //使用自然排序进行排序,要求按照第一条件star_No明星编号升序排列,第二条件start_Name 降序排序 //{自然排序处理见Star类} TreeMap<Star, String> map=new TreeMap<>(); map.put(star, "实力派老演员"); map.put(star2, "偶像派歌手演员"); map.put(star3, "后宫剧大神"); map.put(star4, "草根演员"); Set<Star> set=map.keySet(); for (Star star5 : set) { System.out.println(star5+" "+map.get(star5)); } //4.使用HashMap<Star,String>集合进行存储,将Star对象作为键,vlaue值为与该明星有关的作品名。 //并遍历输出集合元素(要求:明星编号和明星姓名和明星成名作相同的为同一明星) //{对hashCode和equals重写见star类} HashMap<Star, String> map2=new HashMap<>(); map2.put(star, "潜伏"); map2.put(star2, "不知道"); map2.put(star3, "甄嬛传"); map2.put(star4, "士兵突击"); System.out.println(); //5.要求在上题遍历集合时,要求编程实现在当前项目中, //根据获取的每个具体对象的star_Name为名称创建相应文件,将明星对象进行序列化保存 ObjectOutputStream oos=null; Set<Star> set2=map.keySet(); for (Star star6 : set2) { //遍历输出 System.out.println(star6+" "+map.get(star6)); //创建相应的文件,并写入序列化对象 try { oos=new ObjectOutputStream(new FileOutputStream(new File(star6.getStar_Name()+".txt"))); oos.writeObject(star6); oos.flush(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { if(oos!=null){ try { oos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } } }
第六大题
写两个线程,一个线程打印1-52,另一个线程答应字母A-Z。打印顺序为12A34B56C……5152Z。通过使用线程之间的通信协调关系。注:分别给两个对象构造一个对象o,数字每打印两个或字母每打印一个就执行o.wait()。在o.wait()之前不要忘了写o.notify()
参考代码地址:http://blog.csdn.net/baidu_37107022/article/details/71082940
相关文章推荐
- Java阶段性测试--第二三大题参考代码
- 一些Java性能问题:写Java代码的时候可以参考.
- java测试代码
- 《多任务下的数据结构与算法》一书中的红黑树的测试代码,供读者参考!
- 《多任务下的数据结构与算法》一书中的红黑树的测试代码,供读者参考!
- 《多任务下的数据结构与算法》一书中的红黑树的测试代码,供读者参考!
- 用java取得linux系统cpu、内存的实时信息(参考别人代码)
- 《多任务下的数据结构与算法》一书中的红黑树的测试代码,供读者参考!
- 《多任务下的数据结构与算法》一书中的红黑树的测试代码,供读者参考!
- 《多任务下的数据结构与算法》一书中的红黑树的测试代码,供读者参考!
- jsp中上传大文件(200M已测试),存到数据库,易发生连接超时的ie找不到网页的错误,其解决方法。略写代码,参考(.net修改代码应该可以,改天修改)
- Java连接SQL 数据库测试代码
- javat图片缩小代码(测试通过)
- 《多任务下的数据结构与算法》一书中的红黑树的测试代码,供读者参考!
- 《多任务下的数据结构与算法》一书中的红黑树的测试代码,供读者参考!
- 25种java模式代码与追MM参考手册
- Jsp/Java代码分离.实现页面真正的代码分离 测试代码是否按想法运行,下载原代码
- 《多任务下的数据结构与算法》一书中的红黑树的测试代码,供读者参考!
- 《多任务下的数据结构与算法》一书中的红黑树的测试代码,供读者参考!
- Rsa加密的Java测试代码