这篇博客主要是总结一下Java中IO的File类。
1.File类的基本概念
File类:表示文件和目录路径名的抽象表示形式
File类可以实现文件的创建、删除、重命名、得到路径、创建时间等等,是唯一与文件本身有关的操作类
File类的定义
public class File
extends Object
implements Serializable,Comparable<File>
该类实现了Comparable接口,所以可以进行排序
2.File类的操作方法
public static final String separator
表示路径分隔符”\”,跨平台的需要
public static final String pathSeparator
表示路径分隔符,表示”;”
public File(String pathname)
构造File类实例,要传入路径
public boolean createNewFile() throws IOException
创建新文件
public boolean delete()
删除文件
public String getParent()
得到文件的上一级路径
public boolean isDictory()
判断给定的路径是否是文件夹
public boolean isFile()
判断给定的路径是否是文件
public String []list()
列出文件中的文件,返回的是一个字符串数组
public File[] listFiles()
列出文件夹中的所有文件返回的是一个文件数组
注意这两个方法的区别
在文件的操作之前新建一个File的对象的目的是创建指向要进行操作的文件的引用这一步就是确定要对哪个文件动手
public boolean mkdir()
创建新的文件夹
public boolean renameTo(File dest)
为文件重命名
public long length()
返回文件的大小
String getPath()
路径名字符串
public class FileDemo {
public static void main(String args[])
{
//相当于H:\\,建议使用这种方式,适合跨平台
//这只是指向文件的一个指针
File file =new File("H:"+File.separator+"Mytext.txt");
//判断文件是否存在
if(!file.exists())
{
try {
boolean b=file.createNewFile();
System.out.println("创建文件"+b);
}catch (IOException io)
{
io.printStackTrace();
}
}
//删除文件
// System.out.println(file.delete());
//得到文件的上一级路径
System.out.println( file.getParent());
//判断一个路径是否是文件夹
System.out.println("是否是目录"+file.isDirectory());
System.out.println("是否是文件"+file.isFile());
File file1 = new File("H:"+File.separator+"hexo");
//列出文件夹中的所有文件名
//list返回的是一个字符串类型的数组
String [] fileName =file1.list();
//使用foreach循环打印
for (String s:fileName)
{
System.out.println(s);
}
File [] files = file1.listFiles();
for (File file2:files)
{
System.out.println(file2.getPath()+"====="+file.length());
}
//创建一个文件夹
File file2=new File("D:"+File.separator+"小白");
file2.mkdir();//执行命令之后,在D盘创建了一个文件夹
//重命名操作,renameTo的参数为一个文件对象
File file3 = new File("D:\\xiaobai");
file2.renameTo(file3);
}
}
小练习:检索指定目录下指定格式文件
public class HomeWork1 {
//使用递归算法实现文件的查找
public static void findFile(File file,String extName)
{
if(file!=null)
{
//判断是否为目录
if(file.isDirectory())
{
//获取当前目录下的所有的文件对象
File [] files =file.listFiles();
if(files!=null)
{
for (File f:files)
{
//代码核心递归进行判断
findFile(f,extName);
}
}
}
else
{
//递归的出口
//当File是一个文件的时候,那么我们就进行判断
//拓展名是否为制定的拓展名
String path=file.getPath().toLowerCase();
if(path.endsWith(extName))
{
System.out.println(file.getPath());
}
}
}
}
public static void main(String args[])
{
File file = new File("F:\\软件开发实习\\测试图片");
String extName = ".png";
findFile(file,extName);
}
}