对文件本身的操作
File的4个构造函数以及增加文件
第一种构造函数的方式:public File(String pathname)
File file = new File("E:\\Test\\IOTest/a.jpg");
boolean newFile = file.createNewFile();
if(newFile){
System.out.println("创建成功");
}else{
//pathname是无误的,并且方法调用是没有问题的
//创建一个已经存在的文件
System.out.println("创建失败");
}
第二种构造函数的方式:public File(String parent, String child)
Parent:文件的父目录
Child:文件的子目录
这种方式,就是把第一种方式的路径修改
File file1 = new File("E:","Test\\IOTest/b.docx");
try {
file1.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
第三种构造函数的方式:public File(File parent, String child)
Parent:文件的对象
Child:文件的子目录
File file2 = new File(new File("E:"),"Test\\IOTest/c.docx");
try {
file2.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
第四种构造函数的方式:public File(URI uri)
File file3 = new File("E:\\Test\\IOTest/b.jpg");
URI uri = file3.toURI();
File file4 = new File(uri);
try {
file4.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
增加目录
File file5 = new File("E:\\Test"+File.separator+"IOTest/cTest.docx");
boolean mkdir = file5.mkdir();
if(mkdir){
System.out.println("创建成功");
}else{
System.out.println("创建失败");
}
mkdir()和mkdirs()的区别:
mkdir()在父级目录不存在的情况下,子目录是无法创建的,会抛出异常
mkdirs()在父级目录不存在的情况下,子目录可以创建
删除
第一种方式:直接删除
File file6 = new File("E:\\Test\\IOTest/a.jpg");
file6.delete();
第二种方式:当程序运行完成的时候,才会删除
File file7 = new File("E:\\Test\\IOTest\\aTest");
file7.deleteOnExit();
if(file7.exists()){
System.out.println("文件存在");
}
注意:当要删除的目录,下面还有其他的子目录,就不能够直接删除
修改
更改文件的位置和文件名
File file8 = new File("E:","Test/b.docx");
file8.renameTo(new File("E:","Test\\IOTest/brname.docx"));
将b.docx文件移动到IOTest文件下,并且改名为brname.docx
剪切 粘贴
查询
1、查询是否是一个文件
File file9 = new File("E:\\Test\\IOTest\\bTest");
System.out.println(file9.isFile());
2、查询是否是一个目录文件
File file10 = new File("E:\\Test\\IOTest\\bTest");
System.out.println(file10.isDirectory());
3、查询是否是一个隐藏文件
File file11 = new File("E:\\Test\\IOTest\\bTest");
System.out.println(file11.isHidden());
4、查询文件的名字
File file12 = new File("E:\\Test\\IOTest\\bTest");
System.out.println(file12.getName());
5、查询文件的大小
File file13 = new File("E:\\Test\\IOTest\\bTest");
System.out.println(file13.length());
6、查询文件
(1)List()返回String[]把file目录下的文件名义String对象储存在数组中
File file = new File("E:\\Test\\IOTest");
String[] list = file.list();
for(String i:list){
System.out.println(i);
}
(2)ListFiles()返回的是file对象的数组,储存的是对象的路径名
File file = new File("E:\\Test\\IOTest");
File[] list = file.listFiles();
for(File i:list){
System.out.println(i);
}
(3)List(FilenameFiter fiter)添加一个过滤规则,把符合规则的文件过滤出来
dir:路径名
name:文件名
class MyFileNameFiter implements FilenameFilter {
@Override
public boolean accept(File dir, String name) {//定义过滤规则
System.out.println(dir+name);
//普通文件
if(name.endsWith(".docx")){
return true;
}
return false;
}
}
File file = new File("E:\\Test\\IOTest");
String[] list = file.list(new MyFileNameFiter());
for(String i:list){
System.out.println(i);
}
(4)ListFiles(FilenameFiter fiter)添加一个过滤规则,把符合规则的文件过滤出来
class MyFiter implements FileFilter{
@Override
public boolean accept(File pathname) {//绝对地址加文件名
// System.out.println(pathname);
if(pathname.getName().endsWith(".docx")){
return true;
}
return false;
}
}
File file1 = new File("E:\\Test\\IOTest");
File[] files = file1.listFiles(new MyFiter());
for(File file:files){
System.out.println(file);
}
(5)ListFiles(Fiter fiter)
FilenameFiter和Fiter的区别:
appect()方法的参数不一样:路径加文件名 全部的路径
对文件内容的操作,请关注下一篇~~~~