不是文件 而是路径
三个构造 :
- File(File parent, String child)从父抽象路径名和子路径名字符串创建新的 File实例。
- File(String pathname)通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
- File(String parent, String child)从父路径名字符串和子路径名字符串创建新的 File实例。
- File(URI uri)通过将给定的 file: URI转换为抽象路径名来创建新的 File实例。
boolean createNewFile() 当文件不存在时 创建新文件
File file = new File("a.txt");
syso(file.createNewFile());
boolean mkdir()
boolean mkdirs() //多级
重命名 删除
Boolean renameTo() 如果路径相同 就改名 否则改名并剪切
Boolean delete() 不走回收站 删除文件
只能删除 空文件夹
类的判断功能 :
public boolean isDirectory() 判断是否是目录
public boolean isFile() 是文件
public boolean exits() 是否存在
public boolean canRead() 判断是否可读
public boolean canWrite()
public boolean isHidden() 判断是否隐藏
file.setReadable(false) ; windows下 设置无效 因为任何文件都是可读的
file.setWritable(false)
类的获取功能 :
- public string getAbsolutePath ():获取绝对路径public string getPath()∶获取路径
- public string getName():获取名称public long length():获取长度。字节数
- public long lastModified():获取最后一次的修改时间,瓷秒值
- public string[] list ( )∶获取指定目录下的所有文件或者文件央的名称数组
- public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组
输出指定目录下指定后缀的文件名
File file = new File("E:\\");
File [] subFiles = file.listFiles();
for(File subFile : subFiles){
if(subFile.isFile() && subFile.getName().endsWith(".jpg")){
syso(subFile)
}
}
文件名称过滤器 :
File dir = new File("C:\\");
String arr[] = dir.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
File file = new File(dir, name);
return file.isFile()&&file.getName().endsWith(".dll");
}
});
for (String string : arr) {
System.out.println(string);
}
递归 取所有后缀为java的文件 :
public class diGui {
public static void main(String[] args) {
File file = getFile();
printJavaFile(file);
}
public static File getFile(){
Scanner sc = new Scanner(System.in);
while(true){
System.out.println("请输入 :");
String line = sc.nextLine();
File dir = new File(line);
if(!dir.exists()){
System.out.println("path not exits!");
}else if(dir.isFile()){
System.out.println("it's file!");
}else{
return dir;
}
}
}
public static void printJavaFile(File dir){
File subFiles[] = dir.listFiles(); //1.获取到该文件夹路径下的所有的文件和文件夹 存储在File数组中
for (File subfile : subFiles) {//2.遍历 //3.是文件 且后缀java
if(subfile.isFile()&&subfile.getName().endsWith(".java")){
System.out.println(subfile);
}else if(subfile.isDirectory()){//4.如果是文件 就递归调用
printJavaFile(subfile);
}
}
}
}