欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java语言IO接口-File类操作与使用

程序员文章站 2022-04-06 22:45:36
概念文件和目录路径名的抽象表示形式。构造方法//构造方法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.createNew...

概念

文件和目录路径名的抽象表示形式。

构造方法

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(); 

结果:
java语言IO接口-File类操作与使用

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); 

结果:
java语言IO接口-File类操作与使用

mkdir(创建文件夹)

File dir = new File("F://Test"); dir.mkdir(); 

结果:再F盘下创建出来文件夹Test
java语言IO接口-File类操作与使用
注意:同样会有返回值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); 

结果:
java语言IO接口-File类操作与使用
java语言IO接口-File类操作与使用

delete(删除)

java语言IO接口-File类操作与使用

 File file1 = new File("F://Test","2.txt"); //删除 file.delete(); 

结果:1.txt被删除
java语言IO接口-File类操作与使用

getAbsolutePath(获取文件路径)

File dir = new File("F://Test"); System.out.println(dir.getAbsolutePath()); 

结果:获得对象绝对路径字符串
java语言IO接口-File类操作与使用

getPath

System.out.println(dir.getPath()); 

注意:返回的是定义时的路径,可能是相对路径,也可能是绝对路径,这个取决于定义时用的是相对路径还是绝对路径。如果定义时用的是绝对路径,那么使用getPath()返回的结果跟用getAbsolutePath()返回的结果一样
java语言IO接口-File类操作与使用

getName(获取文件名称)

File dir = new File("F://Test"); System.out.println(dir.getName()); 

结果:
java语言IO接口-File类操作与使用

getParent(获取父文件夹地址)

概念:
返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。

File dir = new File("F://Test//Test2"); System.out.println(dir.getParent()); 

结果:
java语言IO接口-File类操作与使用

getParentFile(返回父对象)

File dir = new File("F://Test//Test2"); File test = dir.getParentFile(); 

java语言IO接口-File类操作与使用
注意: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(文件换位置换名字)

java语言IO接口-File类操作与使用

 //原文件的位置 File dir = new File("F://Test"); //要转移的位置和名字 File dir2 = new File("F://Test2"); dir.renameTo(dir2); 

java语言IO接口-File类操作与使用

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语言IO接口-File类操作与使用
java语言IO接口-File类操作与使用

路径分隔符

不同系统分隔符不一样,Java提供了统一的分隔符字段
java语言IO接口-File类操作与使用

文件遍历案例

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; 

java语言IO接口-File类操作与使用

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

相关标签: IO java