A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhoubinjian 金牌黑马   /  2016-4-24 13:54  /  269 人查看  /  0 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

File类
用来将文件或者文件夹封装成对象
方便对文件与文件进行操作
File对象可以作为参数传递给流的构造函数

File类的常见方法:
1.创建
boolean createNewFile():在指定位置创建文件,如果该文件已存在,则不创建                        ,返回false;和输出流不一样,输出流对象一建立创建文件,而且文件已经存在,会覆盖。
boolean mkdir():创建文件夹;
boolean mkdirs():创建多级文件夹;

2.删除
boolean delete();删除失败返回false,如果文件正在被使用,则删除不了返回                        false.
void deleteOnExit():在程序退出时删除指定文件。

3.判断
boolean exists():文件是否存在,
idFile():是否是文件,记住在判断文件对象是否是文件或者目录时,必须要先判断该文件对象封装的内容是否存在,
isDirectory():是否是目录
isHidden():是否为隐藏文件
isAbsolute():是否为绝对路径

4.获取信息
getName()获取名字
getPath()获取路径
getParent();该方法返回的是绝对路径中的父目录,如果获取的是相对路径,返回null。如果相对路径中有上一层目录,那么该目录就是返回结果
getAbsolutePath()获取绝对路径
long lastModified()返回最后一次修改文件的时间
long length()
renameTo():修改文件名(复制+剪切)
separator()分隔符,跨平台的。

文件列表:
File[] files=File.listRoots()返回电脑是的盘符。

File f=new File("c:\\");
String[] names=f.list();返回目录里的文件,包括隐藏的;调用list方法的file对象必须是封装了一个目录,而且该目录还必须存在。否则返回空指针异常。
listFiles()和list的功能基本一样,不同是listFiles()返回目录里的文件,还返回对象。

/*
过滤文件,只留.txt的
String[] arr=dir.list(FilenameFilter filter) 返回一个字符串数组,过滤指定文件 和目录,FilenameFilter是接口类型,里面只有一个方法,所以可以用匿名内部类来传递变量。
*/
import java.io.*;
class Demo
{
        public static void main(String[] args)throws Exception
        {
                File dir=new File("d:\\JAVA\\lianxi");       
                String[] arr=dir.list(new FilenameFilter()
                        {
                                public boolean accept(File dir,String name)
                                {
                                        return name.endsWith(".txt");
                                }
                        });

                        for(String s:arr)
                        {
                                System.out.println(s);                       
                        }
        }
}


如果在列出过程中出现的还是目录的话,还可以再次调用本功能,也就是说函数自身调用自身,这种表现形式,或者编程手法,称为递归。

递归要注意:
1.需要有限定条件。
2.要注意递归的次数,尽量避免内存的溢出

/*
删除文件,原理:从目录的里面往外删

*/
import java.io.*;
class Demo
{
        public static void main(String[] args)throws Exception
        {
                File dir=new File("d:\\JAVA\\pack");
                removeDir(dir);
        }
        public static void removeDir(File dir)
        {
                       
                File[] arr=dir.listFiles();
                        for(int x=0;x<arr.length;x++)
                        {
                                if(arr[x].isDirectory())
                                        removeDir(arr[x]);
               
                                arr[x].delete();                       
                        }
                        dir.delete();
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马