递归方法的使用:
使用递归的方法列出从多级目录下面所有的文件:
public class Demo13 {
public static void main(String[] args) {
File file = new File("D:\\LQBZ");
showFile(file);
}
public static void showFile(File dir) {
File[] filelist = dir.listFiles();
for (File eachFile : filelist) {
if (eachFile.isDirectory()) {
System.out.println(eachFile.getName() + "===============");
showFile(eachFile);
} else {
System.out.println(eachFile.getName());
}
}
}
}
个人感觉:使用递归最重要的是
1.判断的条件(也就是在什么情况下调用自己)
2.对条件的处理(不能让他无限制不做任何更改的一直调用自己,会死循环)
3.注意递归的资料,避免内存溢出
递归分为有返回值递归和无返回值递归
无返回值递归 一般用于当时就可以对数据或文件进行处理操作
有返回值递归 一般用于需要依靠下面递归返回的值,然后对本身进行处理。
使用递归删除带内容的目录:
public static void removeFile(File dir) {
File[] fileList = dir.listFiles();
for (File file : fileList) {
// 判断文件不是隐藏的,并且是目录
if (!file.isHidden()&&file.isDirectory()) {
removeFile(file);
} else {
file.delete();
}
}
dir.delete();
}
Properties对象
设置元素
Properties p = new Properties();
p.setProperty("zhangsan", "20");
获取元素
p.getProperty("zhangsan");
将propertity转换为Set<String> 方便遍历
将文档中的数据放到Propertity中
try {
Properties p = new Properties();
Reader read = new FileReader("D:\\aa.txt");
BufferedReader bd = new BufferedReader(read);
String len = "";
while ((len = bd.readLine()) != null) {
String[] info = len.split("=");
p.setProperty(info[0], info[1]);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
直接加载字符流到Properties
FileInputStream fis = new FileInputStream("D:\\aa.txt");
p.load(fis);
将Properties信息保存到一个文件
p.store(fos, "这里是每行的注释");