java语言IO接口-File类操作与使用
概念
文件和目录路径名的抽象表示形式。
构造方法
//构造方法1 File dir = new File("F://Test"); //构造方法2 File file = new File(dir,"1.txt"); file.createNewFile(); //构造方法3 File file1 = new File("F://Test","2.txt"); file1.createNewFile();
结果:
createNewFile(创建文件)
使用方法:
//一参数构造方法 File file = new File("F://Test.txt"); file.createNewFile();
注意:需要抛出异常,因为操作权限的原因可能会触发异常。
throws IOException
会返回一个布尔类型的返回值,true如果指定的文件不存在且已成功创建; false如果指定的文件已存在。
File file = new File("F://Test.txt"); boolean flag = file.createNewFile(); System.out.println(flag);
结果:
mkdir(创建文件夹)
File dir = new File("F://Test"); dir.mkdir();
结果:再F盘下创建出来文件夹Test
注意:同样会有返回值true/false,true代表创建成功,false代表创建失败。也需要抛出异常。
File dir = new File("F://Test"); boolean test = dir.mkdir(); System.out.println(test);
如果需要创建多层目录需要使用midirs方法
File dir = new File("F://Test1/t/t/t"); boolean test = dir.mkdirs(); System.out.println(test);
结果:
delete(删除)
File file1 = new File("F://Test","2.txt"); //删除 file.delete();
结果:1.txt被删除
getAbsolutePath(获取文件路径)
File dir = new File("F://Test"); System.out.println(dir.getAbsolutePath());
结果:获得对象绝对路径字符串
getPath
System.out.println(dir.getPath());
注意:返回的是定义时的路径,可能是相对路径,也可能是绝对路径,这个取决于定义时用的是相对路径还是绝对路径。如果定义时用的是绝对路径,那么使用getPath()返回的结果跟用getAbsolutePath()返回的结果一样
getName(获取文件名称)
File dir = new File("F://Test"); System.out.println(dir.getName());
结果:
getParent(获取父文件夹地址)
概念:
返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。
File dir = new File("F://Test//Test2"); System.out.println(dir.getParent());
结果:
getParentFile(返回父对象)
File dir = new File("F://Test//Test2"); File test = dir.getParentFile();
注意:getParent返回的是String类型,getParentFile返回的是File类型。
length(文件大小为几字节)
File dir = new File("F://Test"); System.out.println(dir.length());
结果:返回对象文件大小(字节)
exists(判断文件是否存在)
File dir = new File("F://Test"); System.out.println(dir.exists());
结果:存在返回true,不存在返回false
renameTo(文件换位置换名字)
//原文件的位置 File dir = new File("F://Test"); //要转移的位置和名字 File dir2 = new File("F://Test2"); dir.renameTo(dir2);
listFile(获取文件夹中所有文件)
File dir = new File("F://Test"); dir.listFiles();
例如一个文件夹中有20个文件和10个文件夹,调用该方法就会返回一个长度为30的File数组。
list(返回某个目录下的所有文件和目录的文件名)
File dir = new File("F:\\Test1"); for (String s: dir.list()) { System.out.println(s); }
结果:
路径分隔符
不同系统分隔符不一样,Java提供了统一的分隔符字段
文件遍历案例
import java.io.File; import java.io.IOException; public class FileTest { public static void main(String[] args) throws IOException { File file = new File("f:"); File[] files = file.listFiles(); find(files); } public static void find(File[] files) { if (files != null && files.length > 0) { for (File file:files) { if (file.isFile()){ if (file.getName().endsWith(".jpg")){ System.out.println("找到jpg文件:"+file.getAbsolutePath()); } }else { File[] test = file.listFiles(); find(test); } } } } }
注意:files != null && files.length > 0的files !=null不能删掉,因为如果files为空,调用length会出现空指针异常。
files = null; int a = files.length;
FileFilter过滤器
方法1
AVI test = new AVI(); //接收的文件在过滤器中筛选 File[] files = file.listFiles(test);
//需要继承FileFilter static class AVI implements FileFilter { @Override public boolean accept(File pathname) { //限制条件 if (pathname.getName().endsWith(".mp4")) //true表示可以进数组,文件符合要求 return true; //不符合要求的文件 return false; } }
方法2
File file = new File("f:"); FileFilter test = new FileFilter() { @Override public boolean accept(File pathname) { if (pathname.getName().endsWith(".avi")) return true; return false; } }; File[] files = file.listFiles(test);
方法3
File file = new File("f:"); File[] files = file.listFiles(new FileFilter() { @Override public boolean accept(File pathname) { if (pathname.getName().endsWith(".avi")) return true; return false; } });
本文地址:https://blog.csdn.net/qq_30245525/article/details/108024733
上一篇: 异常解决:This application has no explicit mapping for /error, so you are seeing this as a fallback.
推荐阅读
-
Java IO类操作Print与BufferedReader
-
java语言IO接口-File类操作与使用
-
java 接口与抽象类的使用
-
java 接口与抽象类的使用
-
阿里Java学习路线:阶段 1:Java语言基础-Java语言高级特性:第23章:反射与类操作:课时105:反射调用构造方法(含关系图-重要)
-
java学习笔记之IO编程—File文件操作类
-
Java语言入门||02_面向对象与常用类||day10_接口,多态
-
Java IO类操作Print与BufferedReader
-
Java语言mysql数据库的访问步骤,一个简单的实例——使用DAO(数据库操作类 Data Access Object ) 实现对mysql数据库的增删改查
-
java IO(File类、字节流与字符流、字节字符转换流)