package cn.sasa.demo1;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
public class IODemo {
public static void main(String[] args) throws IOException {
/**
* File静态成员变量
* pathSeparator
* 与系统有关的路径分隔符
*
* separator
* 与系统有关的默认名称分隔符
*/
String separator = File.pathSeparator;
System.out.println(separator);// ;
String parator = File.separator;
System.out.println(parator);// \
File parent = new File("d:");
File file = new File(parent, "Sasa1");
System.out.println(file); //d:Sasa1
File file1 = new File("d:","abc");
System.out.println(file1); //d:abc
System.out.println("-----------------------");
// createFileFunc();
// mkdirFunc();
// mkdirsFunc();
// deleteFile();
// getFileInfo();
// fileFunc_1();
// getFileList();
fileFilter();
}
/**
* File 创建文件的功能
* boolean createNewFile()
* 创建的文件路径和文件名,在File构造方法中给出
* 文件已经存在就不再创建
* @throws IOException
*/
static void createFileFunc() throws IOException {
File file = new File("d:/sasa/test1221.txt");
boolean b = file.createNewFile();
System.out.println(b);
}
/**
* File 创建目录功能
* boolean mkdir() 创建文件夹,如果存在,就不创建
* boolean mkdirs() 创建文件夹,如果父文件夹不存在,就会一起创建出来
*/
static void mkdirFunc() {
File file = new File("d:/hihihi");
boolean b = file.mkdir();
System.out.println(b);
}
static void mkdirsFunc() {
File file = new File("d:/aaa/bbb");
boolean b = file.mkdirs();
System.out.println(b);
}
/**
* 删除文件
* boolean delete() 删除文件或文件夹
* 直接从硬盘中删除,不会到回收站
*/
static void deleteFile() {
File file = new File("d:/hihihi");
boolean b = file.delete();
System.out.println(b);
}
/**
* File类获取功能
* String getName() 返回文件名或文件夹名
* long length() 返回文件的字节数
*
* String getAbsolutePath() 获取绝对路径,返回String对象
* File getAbsoluteFile() 获取绝对路径,返回File对象
*
* String getParent() 获取父路径,返回String
* File getParentFile() 获取父路径,返回File对象
*/
static void getFileInfo() {
File file = new File("d:/aaa");
String name = file.getName();
System.out.println(name);
System.out.println("================");
File file1 = new File("d:/sasa/test1221.txt");
long fileLength = file1.length();
System.out.println(fileLength);
System.out.println("================");
String absPath = file1.getAbsolutePath();
System.out.println(absPath);
File absFile = file1.getAbsoluteFile();
System.out.println(absFile);
System.out.println("================");
String parentPath = file1.getParent();
System.out.println(parentPath);
File parentFile = file1.getParentFile();
System.out.println(parentFile);
}
/**
* File类判断功能
* boolean exists() 判断File中的路径是否存在
* boolean isDirectory() 判断是不是文件夹
* boolean isFile() 判断是不是文件
*/
static void fileFunc_1() {
File file = new File("d:/sasa/test1221.txt");
boolean isExists = file.exists();
System.out.println(isExists);
boolean isDir = file.isDirectory();
System.out.println(isDir);
boolean isFile = file.isFile();
System.out.println(isFile);
}
/**
* File 类list
* String[] list(): 遍历一个目录
* File[] listFiles():遍历一个目录
*/
static void getFileList() {
File file = new File("d:/sasa");
String[] strFileList = file.list();
System.out.println(Arrays.toString(strFileList));
System.out.println("================");
File[] fileList = file.listFiles();
for(File f : fileList) {
System.out.println(f.getName());
}
}
/**
* 文件过滤
* 根据扩展名过滤文件,或者过滤包含某些关键字的文件夹
*
* String[] list(FilenameFilter filter)
* File[] listFiles(FileFilter filter)
*/
static void fileFilter() {
System.out.println("================");
File file = new File("d:/sasa");
File[] fileList = file.listFiles(new MyFilter());
for(var f : fileList) {
System.out.println(f);
}
}
}
package cn.sasa.demo1;
import java.io.File;
import java.io.FileFilter;
/**
* 实现接口 FileFilter 重写 accept 方法
* @author THTF
*
*/
public class MyFilter implements FileFilter{
/**
* pathname 文件的全路径
* 对路径进行判断,if .txt true else false
*/
@Override
public boolean accept(File pathname) {
return pathname.getName().endsWith(".txt");
}
}