[align=center]------- [url=http://edu.csdn.net/heima]android培训 [/url]、[url=http://edu.csdn.net/heima]java培训[/url]、期待与您交流!------- [/align]
[align=center]------- [url=http://edu.csdn.net/heima]android培训 [/url]、[url=http://edu.csdn.net/heima]java培训[/url]、期待与您交流!------- [/align]
[align=center]详细请查看:[url=http://edu.csdn.net/heima]http://edu.csdn.net/heima [/url]------- [/align]
package cn.itcast.io.p1.file.test;
import java.io.File;
/*
* 需求:对指定目录进行所有内容的列出(包含子目录中的内容)
* 也可以理解为 深度遍历。
*
*
*/
public class FileTest {
/**
* @param args
*/
public static void main(String[] args) {
File dir = new File("e:\\demodir");
listAll(dir,0);
}
public static void listAll(File dir,int level) {
System.out.println(getSpace(level)+dir.getName());
//获取指定目录下当前的所有文件夹或者文件对象
//
level++;
//取出当前所有的文件及文件夹,放到文件数组中,仅仅是当期那,不做深度遍历
File[] files = dir.listFiles();
// for(File file : files){
// System.out.println("*****files****:" + file);
// }
for(int x=0; x<files.length; x++){
//如果当前有目录存在,递归进行查询列表功能,按顺序对已有目录进行深度遍历
if(files[x].isDirectory()){
listAll(files[x],level);
//递归到底后,逐层跳出,使用上一层的数据,继续往下面的语句执行
}
else{
System.out.println(getSpace(level)+files[x].getName());
}
}
}
private static String getSpace(int level) {
StringBuilder sb = new StringBuilder();
sb.append("|--");
for(int x=0; x<level; x++){
sb.insert(0,"| ");
}
return sb.toString();
}
}
package cn.itcast.io.p1.file.test;
import java.io.File;
/*
* 删除一个带内容的目录。
*
* 原理:必须从最里面往外删。
* 需要进行深度遍历。
*
*
*
*/
public class RemoveDirTest {
/**
* @param args
*/
public static void main(String[] args) {
File dir = new File("e:\\demodir");
// dir.delete();
removeDir(dir);
}
//遍历目录,删除文件,删除目录
public static void removeDir(File dir) {
//取出当前目录的文件及文件夹
File[] files = dir.listFiles();
for(File file : files){
//如果文件夹存在,则继续遍历文件夹
if(file.isDirectory()){
removeDir(file);
}else{
//不存在,则删除当前文件
//如果此路径名表示一个目录,则该目录必须为空才能删除。
System.out.println(file+":"+file.delete());
}
}
//删除当前目录
System.out.println(dir+":"+dir.delete());
}
}
package cn.itcast.io.p1.digui;
public class DiGuiDemo {
/**
* @param args
*/
public static void main(String[] args) {
/*
* 递归:
* 函数自身直接或者间接的调用到了自身。
*
* 一个功能在被重复使用,并每次使用时,参与运算的结果和上一次调用有关。
* 这时可以用递归来解决问题。
*
*
* 注意:
* 1,递归一定明确条件。否则容易栈溢出。
* 2,注意一下递归的次数。
*
*/
// show();
// toBin(6);
int sum = getSum(9000);
System.out.println(sum);
}
public static int getSum(int num){
int x = 9;
if(num==1)
return 1;
return num+getSum(num-1);
}
public static void toBin(int num){
if(num>0){
toBin(num/2);
System.out.println(num%2);
}
}
/*
public static void show(){
method();
}
public static void method(){
show();
}
*/
}
[align=center]------- [url=http://edu.csdn.net/heima]android培训 [/url]、[url=http://edu.csdn.net/heima]java培训[/url]、期待与您交流!------- [/align]
[align=center]详细请查看:[url=http://edu.csdn.net/heima]http://edu.csdn.net/heima [/url]------- [/align]