java 中的file
2021-05-27 本文已影响0人
Exception_Cui
file 类的静态参数
package FileTest;
import java.io.File;
/**
* Created by kumamon on 2021/5/27.
*
* File类的静态变量
*
* File.pathSeparator 路径分割符号 windowns 分号 ; linux 冒号 :
* File.separator 文件名称分隔符 windowns 反斜杠\ linux 正斜杠/
*
*/
public class FileDemo {
public static void main(String[] args) {
System.out.println(File.pathSeparator);// File.pathSeparator 路径分割符号 windowns 分号 ; linux 冒号 :
System.out.println(File.separator); // File.separator 文件名称分隔符 windowns 反斜杠\ linux 正斜杠/
File file =new File("E:\\Java_demo\\1.txt");
System.out.println(file.getAbsolutePath()); //绝对路径 完整的路径 E:\Java_demo\demo01\1.txt
}
}
file中的常用方法
package FileTest;
import java.io.File;
import java.io.IOException;
/**
* Created by kumamon on 2021/5/27.
* File
*
*
*
*/
public class FileMethod {
public static void main(String[] args) throws IOException {
//show1();
//fileMathed();
//fileCreateAndDelete();
//dirCreateAndDelete();
//fileList();
//File file2=new File("demo02");
//fileListSubFile(file2);
}
/**
* 递归打印多级文件
* */
private static void fileListSubFile(File f) {
/** 结果
*
demo02\demo02.iml
demo02\src\Mian.java
demo02\src
* */
File[] files = f.listFiles();
for (File file : files) {
if(file.isDirectory()){
fileListSubFile(file);
}
System.out.println(file);
}
}
/**
* 可以获取隐藏的文件
* */
private static void fileList() {
File file2=new File("demo02");
String[] list = file2.list(); //获取demo02 中的文件
/** 结果
*
demo02.iml
src
* */
for (String s : list) {
System.out.println(s);
}
/** 结果
*
demo02\demo02.iml
demo02\src
* */
File[] files = file2.listFiles();
for (File file : files) {
System.out.println(file);
}
}
/**
* dir创建和删除
* 使用mkdirs 可以创建多级
* delete 不能删除文件夹
*/
private static void dirCreateAndDelete() {
File file=new File("\\test");
File file2=new File("2\\1\\1");
boolean filemkdir = file.mkdir(); //创建文件。true
boolean filemkdir2 = file2.mkdir(); //创建文件。false
System.out.println(filemkdir);
System.out.println(filemkdir2);
boolean mkdirs = file2.mkdirs(); //创建多级文件
System.out.println(mkdirs); //true
file.delete(); //true
file2.delete(); //false 不能删除多级文件
}
/**
*file创建和删除
*
*/
private static void fileCreateAndDelete() throws IOException {
File file=new File("2.txt");
boolean newFile = file.createNewFile(); //创建一个文件 不存在返回true
boolean newFile2 = file.createNewFile(); //已经创建过, 存在返回false
System.out.println(newFile); //true
System.out.println(newFile2); //false
File fileDir=new File("E:\\Java_demo\\testDir");
boolean newFileDir = fileDir.createNewFile(); //创建一个文件 构造传递的为 文件夹,其实创建的还是文件
System.out.println(newFileDir); //true
//File fileUnkown=new File("E:\\Java_demo\\testDir\\1.txt");
//boolean newFileUnkown = fileUnkown.createNewFile(); //文件的上级文件夹不存在,抛出异常
//System.out.println(newFileUnkown); //true
boolean delete = file.delete(); //删除文件
System.out.println(delete);
}
/**
*构造方法
* 可以是文件结尾,也可以是文件夹结尾
* 可以是存在的文件 也可以是不存在的文件
*
*/
private static void show1() {
File file=new File("E:\\Java_demo\\1.txt");
System.out.println(file);
File file1 =new File("E:\\Java_demo\\demo01\\2.txt");
System.out.println(file1);
}
/**
*file 常用的方法
*
*
*/
public static void fileMethod() {
File file1=new File("E:\\Java_demo\\1.txt"); //绝对路径构造
File file2=new File("1.txt");
File file3=new File("E:\\Java_demo\\demo01"); //文件夹
File file4=new File("E:\\Java_demo\\demo05\\2.txt"); //不存在
String absolutePath = file1.getAbsolutePath(); //获取绝对路径
System.out.println(absolutePath);
String path = file1.getPath(); //获取构造方法中传递的路径 E:\Java_demo\demo01\1.txt
String path2 = file2.getPath(); //获取构造方法中传递的路径 1.txt
System.out.println(path);
System.out.println(path2);
String nameDir = file3.getName();//获取文件名称, 文件夹 demo01
String nameUnknow=file4.getName(); //获取文件名称, 不存在文件 2.txt
System.out.println(nameDir);
System.out.println(nameUnknow);
long length = file1.length(); //获取文件的大小 字节为单位
System.out.println(length); //12
long length2 = file3.length();
System.out.println(length2); //获取文件夹的大小
boolean exists = file1.exists(); //获取文件是否存在
System.out.println(exists); //true
boolean exists4 = file4.exists();
System.out.println(exists4); //false
boolean file1s = file1.isFile(); //判断文件是否为文件
System.out.println(file1s); //true
boolean directory = file1.isDirectory(); //获取文件是否为文件夹
System.out.println(directory); //false
}
}
file中文件查找 FileFilter
package FileTest;
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;
/**
* Created by kumamon on 2021/5/27.
* <p>
* 搜索E://AAA 里面的java文件
*/
public class FileSearch {
public static void main(String[] args) {
File file = new File("E:\\AAA");
//search01(file);
search02(file);
}
//
private static void search02(File file1) {
if(!file1.exists()){
return;
}
/*File[] files = file1.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.toString().endsWith(".java") || pathname.isDirectory();
}
});*/
/**使用Lambda 表达式*/
File[] files = file1.listFiles((pathname)->{ return pathname.toString().endsWith(".java") || pathname.isDirectory();});
for (File file : files) {
if(file.isDirectory()){
search02(file);
}
System.out.println(file.toString());
}
}
/**
* 使用String endwith方法
*
* */
private static void search01(File file1) {
if(!file1.exists()){
return;
}
for (File f : file1.listFiles()) {
if(f.isDirectory()){
search01(f);
}else{
if(f.toString().endsWith(".java")){
System.out.println(f);
}
}
}
}
}