26.文件夹的操作:
基本思路: 1.遍历文件夹 2.创建文件夹 3.删除文件夹 4.判断文件夹的操作 5.获取文件夹信息
import java.io.File; import java.util.Date; public class Demo16 { public static void main(String[] args) throws Exception { directoryOpe(); } public static void directoryOpe() throws Exception{ //1.创建文件夹 File dir=new File("e:\\aaa\\bbb\\ccc"); //d盘下面一个aaa目录,在下面bbb目录 System.out.println(dir); if(!dir.exists()){ System.out.println("创建多级目录成功:"+dir.mkdirs()); } //2.删除文件 /* //2.1直接删除 System.out.println("删除的结果是:"+dir.delete()); //删除底层目录并且文件内容为空的时候 //2.2使用jvm进行删除 dir.deleteOnExit(); //删除底层目录并且文件内容为空的时候 Thread.sleep(5000); */ //3.获取文件夹的信息 System.out.println("获取绝对路径:"+dir.getAbsolutePath()); System.out.println("获取路径"+dir.getPath()); System.out.println("获取文件的名字"+dir.getName()); System.out.println("获取父目录:"+dir.getParent()); System.out.println("获取创建时间"+new Date(dir.lastModified()).toLocaleString()); //4.判断 System.out.println("是否是文件夹"+dir.isDirectory()); System.out.println("是否被隐藏"+dir.isHidden()); //5.遍历文件夹 File file=new File("C:\\Users\\22612\\Pictures\\Screenshots"); //通过集合的方式获取信息 String []files=file.list(); System.out.println("------------------------------------"); for (String string : files){ //for增强遍历 System.out.println(string); } } }
(十一)、FileFilter(文件过滤器)接口
27.文件过滤器
public interface FileFilter 2. 当调用File类中的listFiles()方法时,支持传入FileFilter接口接口实现类, 对获取文件进行过滤,只有满足条件的文件的才可出现在listFiles()的返回值中。
基本思路: 1.文件过滤器:可以获得指定的文件 2.endsWith(".jpg") 获得后缀为.jpg的文件。 3.适配器
import java.io.File; import java.io.FileFilter; import java.util.Date; public class Demo16 { public static void main(String[] args) throws Exception { directoryOpe(); } //3.文件夹的操作: public static void directoryOpe() throws Exception{ //5.遍历文件夹 File file=new File("C:\\Users\\22612\\Pictures\\Screenshots"); //通过集合的方式获取信息 String []files=file.list(); System.out.println("------------------------------------"); for (String string : files){ //for增强遍历 System.out.println(string); } System.out.println("------------------FileFilter------------------"); File[] files2=file.listFiles(new FileFilter() { @Override public boolean accept(File pathname) { if(pathname.getName().endsWith(".jpg")){ return true; } return false; } }); for (File file_1:files2) { System.out.println(file_1.getName()); } } }
(十二)、递归遍历/递归删除
28.递归遍历(文件)
基本思路: 1.利用递归的操作,依次进入文件夹。当遇到文件夹的时候,我们就对其进行遍历 和输出.
import java.io.File; public class Demo17 { public static void main(String[] args) throws Exception { list_dir(new File("E:\\aaa")); } public static void list_dir(File dir){ File[] files = dir.listFiles(); System.out.println("文件夹的信息"+dir.getAbsolutePath()); if(files!=null&&files.length>0){ //假如说文件/文件夹不为空,且长度大于0 for (File file_one: files ) { if(file_one.isDirectory()){ //如果是文件夹就进行递归 list_dir(file_one); }else { //获取文件的绝对路径 System.out.println("文件的信息是:"+file_one.getAbsolutePath()); } } } } }
29.递归删除()
基本思路: 1.因为如果文件夹里面有文本,那么我们只有先删除文本,才能再次删除文件夹
import java.io.File; public class Demo17 { public static void main(String[] args) throws Exception { delete_dir(new File("E:\\aaa")); } public static void delete_dir(File dir){ File[] files_one = dir.listFiles(); System.out.println("进入文件夹 "+dir.getAbsolutePath()); if(files_one!=null&&files_one.length>0){ for (File files_two:files_one ) { if(files_two.isDirectory()){ //假如是文件夹 delete_dir(files_two); }else{ System.out.println(files_two.getAbsolutePath()+"文件已被删除 "+files_two.delete()); } } } System.out.println("删除文件夹"+dir.getAbsolutePath()+dir.delete()); } }
(十三)、Properties
30.properties
properties:属性集合 特点: 1.存储属性名和属性值 2.属性名和属性值都是字符串类型 3.没有泛型 4.和流有关
基本知识: 1.
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.PrintWriter; import java.util.Properties; import java.util.Set; public class Demo18 { public static void main(String[] args) throws Exception{ //1.创建集合 Properties properties=new Properties(); //2.添加数据 properties.setProperty("user_name","占山"); properties.setProperty("age","20"); System.out.println(properties.toString()); //3.遍历: //3.1 keySet //3.2 entrySet //3.3 stringProperties.stringProprertyNames() Set<String> strings = properties.stringPropertyNames(); //设置一个集合 for (String string_test:strings ) { System.out.println(string_test+"===="+properties.getProperty(string_test)); //通过key即可 } //4.和流有关的方法 PrintWriter printWriter=new PrintWriter("e:\\0303.txt"); //打印到e盘了 properties.list(printWriter); printWriter.close(); //5.=========保存store======== //1.创建一个文件输出流 FileOutputStream fileOutputStream=new FileOutputStream("e:\\store.properties"); properties.store(fileOutputStream,"注释"); fileOutputStream.close(); //6.========load加载======== Properties properties1=new Properties(); FileInputStream fileInputStream=new FileInputStream("e:\\store.properties"); properties1.load(fileInputStream); fileInputStream.close(); System.out.println(properties1.toString()); } }