package com.ly.io.file;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
public class file {
public static void main(String[] args) {
// TODO Auto-generated method stub
/*
* ile类描述的是一个文件或文件夹。(文件夹也可以称为目录)
* 该类的出现是对文件系统的中的文件以及文件夹进行对象的封装。可以通过对象的思想来操作文件以及文件夹。
* 可以用面向对象的处理问题,通过该对象的方法,可以得到文件或文件夹的信息方便了对文件与文件夹的属性信息进行操作。
* 文件包含很多的信息:如文件名、创建修改时间、大小、可读可写属性等。
*
*
*
*/
File file = new File("F:/项目/io/","file.txt");
//File file = new File("F:/项目/io/file.txt");
System.out.println(file.exists());
try {
if(file.createNewFile()) {
System.out.println(file.getName()+"创建成功");
}else{
System.out.println("创建失败");//该文件或目录存在时 就不会再次创建
};
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("创建失败2");
e.printStackTrace();
}
/* 创建的file 所对应的uri地址不存在,所以exists()结果为false,然仍然成功创建了File对象,这时其代表了一个抽象路径
* 构建一个File类的实例并不会在机器上创建一个文件
* createNewFile 创建一个文件
* window路径是\\\头向左的反斜杠 而这里的uri是相反的反斜杠
* 在Windows中分隔符为'\',在Unix/Linux中分隔符为'/'。
跨平台的目录分隔符
更专业的做法是使用File.separatorChar,这个值就会根据系统得到的相应的分割符。
例:new File("c:" + File.separatorChar + "a.txt");
*
*/
File filea = new File("F:/项目/io/");
File filec = new File("F:/项目/ioo/");//抽象目录
System.out.println(filea.isDirectory());
System.out.println(filea.mkdirs());//目录本来存在所有并不会创建,返回false
filea.delete();
filec.delete();//删除抽象目录
System.out.println("是否目录被删除成功?"+!filea.isDirectory());
System.out.println("是否目录被删除成功?"+!filec.isDirectory());//抽象目录同样被删除成功
/* isDirectory()判断路径是否存在,换句话讲是否是目录
* 因为 目录不为空 所以删除会失败
*/
File fileb = new File("F:/项目/io/","readme.txt");
File filed = new File("F:/项目/io/","readme2.txt");
System.out.println(fileb.isFile());
System.out.println(fileb.getName()+fileb.length());//length返回类型为long 单位为字节
fileb.renameTo(filed);
System.out.println(filed.getName()+filed.length());
/* isFile()判断是否是文件
* File对象是不可变的。 创建后它始终表示相同的路径名。当重命名文件时,旧的File对象仍然代表原始的路径名。
* */
File filee = new File("F:/项目/io");
File[] flist = filee.listFiles();//listFiles获取该目录下的所有文件和目录并返回一个数组
for(File file1 : flist) {//枚举这个数组
if(file1.isFile()) {
System.out.println(file1.getName()+"(file)");
}else if(file1.isDirectory()) {
System.out.println(file1.getName()+"(directory)");
}
}
file file1 = new file();
File[] filef = new File[3] ;
filef[0] = filee;
file1.listAllfiles(filef, "xml");
}
public void listAllfiles(File[] file,String end) {//判断该数组里的file是否有以end结尾的
for(File fil:file) {
String fname = fil.getName().toLowerCase();//filename都化为小写字母
if(fname.endsWith(end)) {//判断是否以end结尾
System.out.println(fil.getName()+"end with "+end);
}
}
}
}