IO流加集合加强练习题附答案.docx

上传人:b****3 文档编号:10385579 上传时间:2023-05-25 格式:DOCX 页数:22 大小:27.91KB
下载 相关 举报
IO流加集合加强练习题附答案.docx_第1页
第1页 / 共22页
IO流加集合加强练习题附答案.docx_第2页
第2页 / 共22页
IO流加集合加强练习题附答案.docx_第3页
第3页 / 共22页
IO流加集合加强练习题附答案.docx_第4页
第4页 / 共22页
IO流加集合加强练习题附答案.docx_第5页
第5页 / 共22页
IO流加集合加强练习题附答案.docx_第6页
第6页 / 共22页
IO流加集合加强练习题附答案.docx_第7页
第7页 / 共22页
IO流加集合加强练习题附答案.docx_第8页
第8页 / 共22页
IO流加集合加强练习题附答案.docx_第9页
第9页 / 共22页
IO流加集合加强练习题附答案.docx_第10页
第10页 / 共22页
IO流加集合加强练习题附答案.docx_第11页
第11页 / 共22页
IO流加集合加强练习题附答案.docx_第12页
第12页 / 共22页
IO流加集合加强练习题附答案.docx_第13页
第13页 / 共22页
IO流加集合加强练习题附答案.docx_第14页
第14页 / 共22页
IO流加集合加强练习题附答案.docx_第15页
第15页 / 共22页
IO流加集合加强练习题附答案.docx_第16页
第16页 / 共22页
IO流加集合加强练习题附答案.docx_第17页
第17页 / 共22页
IO流加集合加强练习题附答案.docx_第18页
第18页 / 共22页
IO流加集合加强练习题附答案.docx_第19页
第19页 / 共22页
IO流加集合加强练习题附答案.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

IO流加集合加强练习题附答案.docx

《IO流加集合加强练习题附答案.docx》由会员分享,可在线阅读,更多相关《IO流加集合加强练习题附答案.docx(22页珍藏版)》请在冰点文库上搜索。

IO流加集合加强练习题附答案.docx

IO流加集合加强练习题附答案

休息日补充加强练习题:

题目一:

将两个集合{“a”,“b”,“c”,“d”,“e”}和{“d”,“e”,“f”,“g”,“h”},把这两个集合去除重复项合并成一个,实现需求

importjava.util.ArrayList;

/*题目一:

将两个集合{“a”,“b”,“c”,“d”,“e”}和{“d”,“e”,“f”,“g”,“h”},

把这两个集合去除重复项合并成一个,实现需求*/

publicclassDemo10{

publicstaticvoidmain(String[]args){

ArrayListlist1=newArrayList();

list1.add("a");

list1.add("b");

list1.add("c");

list1.add("d");

list1.add("e");

ArrayListlist2=newArrayList();

list2.add("d");

list2.add("e");

list2.add("f");

list2.add("g");

list2.add("h");

myAdd(list1,list2);

}

privatestaticvoidmyAdd(ArrayListlist1,ArrayListlist2){

for(Stringstring:

list2){

if(!

list1.contains(string)){

list1.add(string);

}

}

System.out.println(list1);

}

}

 

题目二:

已知文件a.txt文件中的内容为“AAbcdea22dferwplkCC321ou1”,请编写程序读取该文件内容,要求去掉重复字母(区分大小写字母)并按照自然排序顺序后输出到b.txt文件中。

即b.txt文件内容应为"abc......123..."这样的顺序输出

importjava.io.BufferedReader;

importjava.io.BufferedWriter;

importjava.io.FileReader;

importjava.io.FileWriter;

importjava.io.IOException;

importjava.util.TreeSet;

publicclassDemo11{

publicstaticvoidmain(String[]args)throwsIOException{

BufferedReaderfr=newBufferedReader(newFileReader(

"C:

\\Users\\xiawei\\Desktop\\a.txt"));

BufferedWriterbw=newBufferedWriter(newFileWriter(

"C:

\\Users\\xiawei\\Desktop\\b.txt"));

Stringline=null;

while((line=fr.readLine())!

=null){

line=sort(line);

bw.write(line);

}

bw.close();

fr.close();

}

privatestaticStringsort(Stringline){

TreeSetset=newTreeSet();

StringBuildersb=newStringBuilder();

char[]ch=line.toCharArray();

for(charc:

ch){

set.add(c);

}

for(Charactercharacter:

set){

sb.append(character);

}

returnsb.toString();

}

}

题目三:

把指定目录下(包含子目录)的所有图片,复制到另一个指定目录下

importjava.io.BufferedInputStream;

importjava.io.BufferedOutputStream;

importjava.io.File;

importjava.io.FileInputStream;

importjava.io.FileOutputStream;

importjava.io.IOException;

//题目三:

把指定目录下(包含子目录)的所有图片,复制到另一个指定目录下

publicclassDemo4{

staticStringregex=".+\\.([j][p][g]|[p][n][g]|[g][i][f])";

publicstaticvoidmain(String[]args)throwsIOException{

Filefile=newFile("E:

\\图片");

copyPhoto(file);

System.out.println("传输完成!

");

}

privatestaticvoidcopyPhoto(Filefile)throwsIOException{

File[]files=file.listFiles();

for(Filefile2:

files){

if(file2.isDirectory()){

copyPhoto(file2);

}elseif(file2.getName().matches(regex)){

BufferedInputStreambis=newBufferedInputStream(newFileInputStream(file2));

byte[]buf=newbyte[1024*20];

intlenght=0;

BufferedOutputStreambos=newBufferedOutputStream(newFileOutputStream(

"C:

\\Users\\xiawei\\Desktop\\新建文件夹\\"+file2.getName()));

while((lenght=bis.read(buf))!

=-1){

bos.write(buf,0,lenght);

}

bos.close();

bis.close();

}

}

}

}

题目四:

模拟用户登录功能实现。

接收用户输入的用户名和密码,然后和文件中存储的用户名、密码匹配

importjava.io.BufferedReader;

importjava.io.BufferedWriter;

importjava.io.File;

importjava.io.FileReader;

importjava.io.FileWriter;

importjava.io.IOException;

importjava.util.Scanner;

//模拟用户登录功能实现。

接收用户输入的用户名和密码,然后和文件中存储的用户名、密码匹配

publicclassDemo13{

static{

Filefile=newFile("C:

\\Users\\xiawei\\Desktop\\config.properties");

try{

file.createNewFile();

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

}

staticScannersc=newScanner(System.in);

publicstaticvoidmain(String[]args)throwsException{

while(true){

System.out.println("请选择功能A:

注册B:

登录");

Strings=sc.next();

if("a".equalsIgnoreCase(s)){

//注册

register();

}elseif("b".equalsIgnoreCase(s)){

//登录

login();

break;

}else{

System.out.println("您的输入不合法,请输入\"a\"或者\"b\"");

}

}

}

//注册

privatestaticvoidregister()throwsIOException{

System.out.println("请输入用户名:

");

StringAdmin=sc.next();

System.out.println("请输入密码:

");

Stringpassword=sc.next();

Stringregisterline=password+"="+Admin;

BufferedWriterbw=newBufferedWriter(newFileWriter(

"C:

\\Users\\xiawei\\Desktop\\config.properties",true));

bw.write(registerline);

bw.newLine();

System.out.println("注册成功!

您的账户名:

"+Admin+"您的密码:

"+password);

bw.close();

}

//登录

privatestaticvoidlogin()throwsIOException,Exception{

intcount=0;

while(true){

System.out.println("请输入用户名:

");

StringAdmin=sc.next();

System.out.println("请输入密码:

");

Stringpassword=sc.next();

Stringline=password+"="+Admin;

BufferedReaderbr=newBufferedReader(newFileReader(

"C:

\\Users\\xiawei\\Desktop\\config.properties"));

Stringstr=null;

booleanisLogin=false;

while((str=br.readLine())!

=null){

if(line.equals(str)){

isLogin=true;

break;

}

}

br.close();

if(isLogin){

System.out.println(Admin+"欢迎您回来");

break;

}else{

count++;

System.out.println("密码输入错误!

");

if(count==5){

System.out.println("您已多次输入错误,帐号已被锁定30秒,请稍后重试!

");

Thread.sleep(30000);

}

if(count==8){

System.out.println("程序10秒后自动关闭!

");

Thread.sleep(10000);

System.exit(0);

}

}

}

}

}

题目五:

在c盘下有篇txt文本,读取这个文本并统计出这个文本中指定字符的个数(如指定字符为”我”),将该字符与对应的次数输出到当前项目的key.txt中,例如:

输出格式为:

我=10

importjava.io.BufferedReader;

importjava.io.BufferedWriter;

importjava.io.File;

importjava.io.FileReader;

importjava.io.FileWriter;

importjava.io.IOException;

importjava.util.ArrayList;

importjava.util.Scanner;

publicclassDemo2{

staticScannersc=newScanner(System.in);

publicstaticvoidmain(String[]args)throwsIOException{

ArrayListlist=newArrayList();

Filefile=newFile("C:

\\Users\\xiawei\\Desktop\\b.txt");

BufferedReaderbr=newBufferedReader(newFileReader(file));

intlen=0;

while((len=br.read())!

=-1){

list.add((char)len);

}

br.close();

intcount=0;

for(Characterc:

list){

if(c=='我'){

count++;

}

}

Stringline="我="+count;

BufferedWriterbw=newBufferedWriter(newFileWriter("key.txt"));

bw.write(line);

bw.close();

}

}

 

题目七:

在d盘目录下有一个加密文件a.txt(文件里只有英文和数字),密码是“heima”,当密码输入正确时才能读取文件里的数据。

现要求用代码来模拟读取文件的过程,并统计文件里各个字母出现的次数,并把统计结果按照“a:

2个;b:

3个;”的格式输出到d盘的count.txt中

importjava.io.BufferedReader;

importjava.io.BufferedWriter;

importjava.io.File;

importjava.io.FileInputStream;

importjava.io.FileNotFoundException;

importjava.io.FileOutputStream;

importjava.io.FileReader;

importjava.io.FileWriter;

importjava.io.IOException;

importjava.util.Map;

importjava.util.Scanner;

importjava.util.TreeMap;

publicclassDemo6{

staticScannersc=newScanner(System.in);

publicstaticvoidmain(String[]args)throwsException{

//对a.txt文件加密

//setPassword();

//对a.txt文件解密

System.out.println("请输入密码对a.txt解密:

");

while(true){

Stringpas=sc.next();

if("heima".equals(pas)){

keyFile(pas);

break;

}else{

System.out.println("密码输入错误!

请重新输入");

}

}

//格式输出到count.txt

outputCount();

}

privatestaticvoidoutputCount()throwsIOException{

Mapmap=newTreeMap();

BufferedReaderbr=newBufferedReader(newFileReader("D:

\\a.txt"));

intc=0;

while((c=br.read())!

=-1){

charch=(char)c;

if((ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z')){

map.put(ch,map.containsKey(ch)?

map.get(ch)+1:

1);

}

}

br.close();

BufferedWriterbw=newBufferedWriter(newFileWriter("D:

\\count.txt"));

//输出该文本文件里面每个字符出现的次数

for(Characteri:

map.keySet()){

Stringline=i+":

"+map.get(i)+"个";

bw.write(line);

bw.newLine();

}

bw.close();

}

publicstaticvoidkeyFile(Stringpas)throwsException{

byte[]bt=pas.getBytes();

intsum=0;

for(byteb:

bt){

sum+=b;

}

FileInputStreamfis=newFileInputStream("D:

\\a.txt");

FileOutputStreamfos=newFileOutputStream("D:

\\c.txt");

intlen=0;

while((len=fis.read())!

=-1){

fos.write(len^sum);

}

System.out.println("解密成功");

fos.close();

fis.close();

}

publicstaticvoidsetPassword()throwsFileNotFoundException,IOException{

StringKEY="heima";

Filefile=newFile("D:

\\c.txt");

FileInputStreamfis=newFileInputStream(file);

FileOutputStreamfos=newFileOutputStream("D:

\\a.txt");

intlen=0;

intkey=0;

byte[]bt=KEY.getBytes();

for(byteb:

bt){

key+=b;

}

while((len=fis.read())!

=-1){

System.out.println(len);

len=len^key;

System.out.println(len);

fos.write(len);

}

fos.close();

fis.close();

}

}

题目八:

已知User类,该类有name(String类型)和age(int类型)两个属性,ArrayList排序,要求按照User对象的age的倒序排序。

importjava.util.ArrayList;

/*已知User类,该类有name(String类型)和age(int类型)两个属性,ArrayList排序,

要求按照User对象的age的倒序排序。

*/

publicclassDemo4{

publicstaticvoidmain(String[]args){

ArrayListlist=newArrayList();

list.add(newUser("张三",25));

list.add(newUser("李四",23));

list.add(newUser("赵柳",19));

list.add(newUser("周期",31));

list.add(newUser("王二",28));

sort(list);

}

privatestaticvoidsort(ArrayListlist){

for(inti=0;i

for(intj=i+1;j

if(list.get(i).getAge()

Users=list.get(i);

list.set(i,list.get(j));

list.set(j,s);

}

}

}

System.out.println(list);

}

}

题目九:

设计一个学生类Student和它的一个子类Undergraduate。

*

(1)Student类有name和age属性,一个包包含两个参数的构造方法,用于给name和age赋值,

*一个show()方法打印Student的属性信息。

*

(2)本科生类Undergraduate增加一个degree(学位)属性,有一个包含三个参数的构造方法,

*前两个参数用于给继

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2