1、用递归复制文件目录
public void copyFiles(String fromPath, String toPath){
File fromFile = new File(fromPath);
if (fromFile.isDirectory()){
File toFile = new File(toPath);
if(!toFile.exists()) {
System.out.println("正在创建文件夹:" + toFile.getName());
toFile.mkdir();
}
File[] files = fromFile.listFiles();
for(File f : files){
copyFile(f.getAbsolutePath(), toPath+ "/" + f.getName());
}
} else {
System.out.println("正在复制文件:" + frompath);
copy(fromPath, toPath);
}
}
/**
* 复制单个文件
* @param fromPath
* @param toPath
*/
private void copy(String fromPath, String toPath){
try{
// 建立一个输入流
DataInputStream in = new DataInputStream(
BufferedInputStream(
FileInputStream(fromPath)));
byte[] data = new byte[in.available()];
in.read(data);
// 建立一个输出流
DataOutputStream out = new DataOutputStream(
BufferedOutputStream(
FileOutputStream(toPath)));
out.write(data);
// 关闭输入输出流
out.close();
in.close();
} catch(Exception e){
e.printStackTrace();
}
}
2、try{}语句块有return语句,在try{}后面有finally{}code,该code是否会执行,什么情况下执行?
我们先看个例子吧
import java.math.BigDecimal;
public class TryCatchTest {
public static void main(String[] args){
try {
System.out.println("运行try{}代码块");
new BigDecimal("a");
return;
} catch(Exception e) {
e.printStackTrace();
System.out.println("运行到catch代码块了");
} finally {
System.out.println("运行到finally代码块了");
}
System.out.println("运行try finally外代码");
}
}
运行的结果为
运行try{}代码块
java.lang.NumberFormatException
at java.math.BigDecimal.<init>(Unknown Source)
at java.math.BigDecimal.<init>(Unknown Source)
at hxq.study.test.TryCatchTest.main(TryCatchTest.java:9)
运行到catch代码块了
运行到finally代码块了
运行try finally外代码
从中可以看出,code还是有可能被执行的,当try中捕捉的异常时code就会执行,而且finally{}代码块始终都会执行
3、归并排序算法实现
import java.util.ArrayList;
import java.util.Iterator;
public class MergerSortor {
public void sort(ArrayList<Integer> list){
if(list == null) return;
if(list.size() <= 1) return;
ArrayList<Integer> l1 = new ArrayList<Integer>();
ArrayList<Integer> l2 = new ArrayList<Integer>();
Iterator<Integer> it = list.iterator();
while(it.hasNext()){
l1.add(it.next());
if (it.hasNext()) l2.add(it.next());
}
sort(l1);
sort(l2);
// 归并
list.clear();
merger(list, l1, l2);
}
/**
* 将l1,l2归并到list中
* @param list
* @param l1
* @param l1
*/
private void merger(ArrayList<Integer> list, ArrayList<Integer> l1, ArrayList<Integer> l2){
while (!l1.isEmpty() || !l2.isEmpty()) {
if (l1.isEmpty()){
list.add(l2.get(0));
l2.remove(0);
} else if (l2.isEmpty()) {
list.add(l1.get(0));
l1.remove(0);
} else {
Integer int1 = l1.get(0);
Integer int2 = l2.get(0);
if (int1 < int2) {
list.add(int1);
l1.remove(0);
} else {
list.add(int2);
l2.remove(0);
}
}
}
}
public static void main(String[] args){
MergerSortor sortor = new MergerSortor();
ArrayList<Integer> list = new ArrayList<Integer>();
// 随机生成20个100内的整数
int i = 20;
while (i > 0) {
int a = (int)Math.round(Math.random() * 100);
list.add(a);
i --;
}
System.out.println("排序前:" + list);
sortor.sort(list);
System.out.println("排序后:" + list);
}
}
分享到:
相关推荐
C语言面试题总结汇总经典.pdfC语言面试题总结汇总经典.pdfC语言面试题总结汇总经典.pdfC语言面试题总结汇总经典.pdfC语言面试题总结汇总经典.pdfC语言面试题总结汇总经典.pdfC语言面试题总结汇总经典.pdfC语言面试题...
超全的嵌入式工程师笔试面试题汇总 单片机嵌入式应聘测试题(含答案).pdf 经典嵌入式面试题.pdf 嵌入式工程师笔试题带答案.pdf 嵌入式工程师经典面试题.pdf 嵌入式软件工程师笔试集锦.pdf 嵌入式软件工程师笔试题__...
面试题汇总
Redis面试题汇总.zipRedis面试题汇总.zipRedis面试题汇总.zipRedis面试题汇总.zipRedis面试题汇总.zipRedis面试题汇总.zipRedis面试题汇总.zipRedis面试题汇总.zipRedis面试题汇总.zipRedis面试题汇总.zipRedis面试...
Vue面试题汇总.zipVue面试题汇总.zipVue面试题汇总.zipVue面试题汇总.zipVue面试题汇总.zipVue面试题汇总.zipVue面试题汇总.zipVue面试题汇总.zipVue面试题汇总.zipVue面试题汇总.zipVue面试题汇总.zipVue面试题汇总...
2023最新前端面试题总结
Mysql面试题汇总Mysql面试题汇总Mysql面试题汇总Mysql面试题汇总Mysql面试题汇总Mysql面试题汇总Mysql面试题汇总Mysql面试题汇总Mysql面试题汇总Mysql面试题汇总Mysql面试题汇总Mysql面试题汇总Mysql面试题汇总Mysql...
java常见面试题汇总 java常见面试题汇总 java常见面试题汇总 java常见面试题汇总 java常见面试题汇总 java常见面试题汇总 java常见面试题汇总 java常见面试题汇总 java常见面试题汇总 java常见面试题汇总 java常见...
mysql常见面试题汇总,mysql常见面试题汇总 mysql常见面试题汇总,mysql常见面试题汇总 mysql常见面试题汇总,mysql常见面试题汇总 mysql常见面试题汇总,mysql常见面试题汇总 mysql常见面试题汇总,mysql常见面试题...
Redis面试题汇总经典.docxRedis面试题汇总经典.docxRedis面试题汇总经典.docxRedis面试题汇总经典.docxRedis面试题汇总经典.docxRedis面试题汇总经典.docxRedis面试题汇总经典.docxRedis面试题汇总经典.docxRedis...
web前端笔试题面试题汇总+前端优化总结 web前端笔试题面试题汇总+前端优化总结 web前端笔试题面试题汇总+前端优化总结 web前端笔试题面试题汇总+前端优化总结 web前端笔试题面试题汇总+前端优化总结 web前端笔试题...
vue面试题汇总.pdfvue面试题汇总.pdfvue面试题汇总.pdfvue面试题汇总.pdfvue面试题汇总.pdfvue面试题汇总.pdfvue面试题汇总.pdfvue面试题汇总.pdfvue面试题汇总.pdfvue面试题汇总.pdfvue面试题汇总.pdfvue面试题汇总...
redis面试题汇总.pdfredis面试题汇总.pdfredis面试题汇总.pdfredis面试题汇总.pdfredis面试题汇总.pdfredis面试题汇总.pdfredis面试题汇总.pdfredis面试题汇总.pdfredis面试题汇总.pdfredis面试题汇总.pdfredis面试...
Netty面试题汇总.pdfNetty面试题汇总.pdfNetty面试题汇总.pdfNetty面试题汇总.pdfNetty面试题汇总.pdfNetty面试题汇总.pdfNetty面试题汇总.pdfNetty面试题汇总.pdfNetty面试题汇总.pdfNetty面试题汇总.pdfNetty面试...
dubbo面试题汇总.pdfdubbo面试题汇总.pdfdubbo面试题汇总.pdfdubbo面试题汇总.pdfdubbo面试题汇总.pdfdubbo面试题汇总.pdfdubbo面试题汇总.pdfdubbo面试题汇总.pdfdubbo面试题汇总.pdfdubbo面试题汇总.pdfdubbo面试...
Spring面试题汇总.pdfSpring面试题汇总.pdfSpring面试题汇总.pdfSpring面试题汇总.pdfSpring面试题汇总.pdfSpring面试题汇总.pdfSpring面试题汇总.pdfSpring面试题汇总.pdfSpring面试题汇总.pdfSpring面试题汇总....
JVM面试题汇总.pdfJVM面试题汇总.pdfJVM面试题汇总.pdfJVM面试题汇总.pdfJVM面试题汇总.pdfJVM面试题汇总.pdfJVM面试题汇总.pdfJVM面试题汇总.pdfJVM面试题汇总.pdfJVM面试题汇总.pdfJVM面试题汇总.pdfJVM面试题汇总...
mybatis面试题汇总.pdfmybatis面试题汇总.pdfmybatis面试题汇总.pdfmybatis面试题汇总.pdfmybatis面试题汇总.pdfmybatis面试题汇总.pdfmybatis面试题汇总.pdfmybatis面试题汇总.pdfmybatis面试题汇总.pdfmybatis面试...
RabbitMQ面试题汇总.pdfRabbitMQ面试题汇总.pdfRabbitMQ面试题汇总.pdfRabbitMQ面试题汇总.pdfRabbitMQ面试题汇总.pdfRabbitMQ面试题汇总.pdfRabbitMQ面试题汇总.pdfRabbitMQ面试题汇总.pdfRabbitMQ面试题汇总....