import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.util.Properties;
import java.util.Set;
/*
properties是属性集合
继承了hashtable
线程安全
特点:
可以存储属性名和属性值
属性名和属性值都是字符串类型的
没有泛型(重点!!!!!)
和流有关
*/
public class Demo01 {
public static void main(String[] args)throws Exception {
// 1. 创建集合
Properties properties = new Properties();
// 2.添加数据
properties.setProperty("username","zhangsan");
properties.setProperty("age","20");
// 3.遍历
// 3.1 keySet
properties.keySet();
// 3.2 entrySet
// 3.3 stringpropertynames
Set<String> pronames =properties.stringPropertyNames();
for (String pro : pronames){
System.out.println(pro + "======="+ properties.getProperty(pro));
}
// 4.和流有关的方法
// =======list方法========
PrintWriter pw = new PrintWriter("e:\\print.txt");
properties.list(pw);
pw.close();
// ======store保存的方法=======
// FileOutputStream fos = new FileOutputStream("E:\\MY_Java\\print.properties");
// properties.store(fos,"注释");
需要传输一个字节流或者字符流
// fos.close();
// ======load加载方法=====
// Properties properties2 = new Properties();
// FileInputStream fis = new FileInputStream("e:\\MY_Java\\print.properties");
// properties2.load(fis);
// fis.close();
// System.out.println(properties2.toString());
}
}
2
import java.io.File;
import java.io.FileFilter;
public class fileOpe0 {
public static void main(String[] args) throws Exception {
// separator();
fileOpe();
}
//1.分隔符
public static void separator(){
System.out.println("路径分隔符:"+File.pathSeparator);
System.out.println("名称分隔符:"+File.separatorChar);
}
// 2.文件操作
public static void fileOpe() throws Exception{
// 1.创建文档777139197
File dir=new File("E:\\aa\\bb\\cc");//仅创建了一个个对象
System.out.println(dir.toString());
if(!dir.exists()){
dir.mkdirs();
boolean b = dir.createNewFile();
System.out.println("创建结果"+ dir.mkdirs());
}
// 2.删除文件
// 2.1 直接删除
System.out.println("dir = " + dir.delete());
// 2.2 使用JVM时删除
// dir.deleteOnExit();
// Thread.sleep(500);
// 3.获取文件信息
System.out.println("获取绝对路径 " + dir.getAbsolutePath());
System.out.println("获取路径 " + dir.getPath());
System.out.println("获取文件夹名称" + dir.getName());
System.out.println("获取父目录:"+dir.getParent());
// 4.判断
System.out.println("是否是文件夹" + dir.isDirectory());
System.out.println("是否是隐藏的文件" + dir.isHidden());
// 5.遍历文件夹
File dir2=new File("e:\\");
String[] files=dir2.list();
System.out.println("================= = ");
for (String s : files){
System.out.println("s = " + s);
}
System.out.println("=======FileFliter接口的使用==========");
File[] file2 = dir2.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
if (pathname.getName().endsWith(".png")){
return true;
}
else {
return false;
}
}
});
for (File fil : file2){
System.out.println(fil.getName());
}
}
}
3.
/*
案例一:递归遍历文件夹
案例二:递归删除文件夹
*/
import java.io.*;
public class Demo00 {
public static void main(String[] args) {
// listDir(new File("E:\\MY_Java\\test000"));
deleteDir(new File("E:\\MY_Java\\test000"));
}
public static void listDir(File dir) {
File[] files = dir.listFiles();
System.out.println("dir.getAbsolutePath() = " + dir.getAbsolutePath());
if (files != null && files.length > 0) {
for (File file : files) {
if (file.isDirectory()) {
listDir(file);//此处使用递归操作
} else {
System.out.println("file.getAbsolutePath() = " + file.getAbsolutePath());
}
}
}
}
public static void deleteDir(File dir){
if (dir != null &&dir.length()>0){
File [] filess = dir.listFiles();
for (File file : filess){
if (file.isDirectory()){
deleteDir(file);
}else{
System.out.println("需要删除的文件的路径是" + file.getAbsolutePath()+"已删除"+file.delete());
}
}
}
System.out.println(dir.getAbsolutePath()+"删除:"+dir.delete());
}
}