File类

来源:互联网 发布:物流网络存在的问题 编辑:程序博客网 时间:2024/06/06 01:52

    类File的对象可以表示文件,也可以表示目录。在创建File对象是,需要指定目录名或文件名的字符串传递给该类的构造方法:

     File  file  =  new  File("Data.txt");//创建了一个File对象,表示当前目录下的文件Data.txt

     File  file  =  new  File("D:\\Java\\Hello.java");//指明详细路径及文件名,注意双斜线或用“/”代替

     创建了File对象,就可以调用File类中定义的方法,对文件或目录进行管理。常用的方法如下:


     boolean exists()    判断文件是否存在,存在返回 true,否则返回false

     boolean isFile()    判断是否为文件,是返回true,否则返回false

     boolean isDirectory()   判断是否为目录,是返回true, 否则返回false

     String getName()    获得文件的名称

     String getAbsolutePath()   获得文件的绝对路径

     long length()        获得文件的长度(字节数)

     boolean createNewFile()    创建新文件,创建成功返回true,否则返回false,有可能抛出IOException异常,必须捕捉

     boolean delete()     删除文件,删除成功返回true,否则返回false

     File[] listFiles()   返回文件夹内的子文件与子文件夹的数组


     进行文件和目录管理师,允许指定相对或绝对目录路径名,但是为了确保程序能在不同的平台上运行,编程时最好不要直接使用绝对路径名。默认的情况下,相对路径名是指相对于当前工作目录。

     利用类File可以做一个简单文件搜索器(输入path(文件夹的绝对路径)和key(关键字),输出该文件夹下所有与key匹配的文件)

//显示指定路径所有目录下的所有的file的名字public void searchFile(String path){File file = new File(path);if(file.exists()){if(file.isFile()){//是文件list.add2(file.getName());}else if(file.isDirectory()){//是文件夹File[] files = file.listFiles();for(File f:files){//递归searchFile(f.getAbsolutePath());}}}}

      需要注意的是递归的使用,当一个文件夹名与key匹配时,需要调用searchFile方法本身来遍历该文件夹。

public  void  showFile(MyList list){//取出队列中文件名与key比较for(int i=0;i<list.getLength();i++){//判断文件名是否与key匹配if(list.get2(i).contains(key)){//追加输出area_out.append(list.get2(i)+"\n");}}if(area_out.getText().length() == 0){area_out.setText("沒有此文件!!");}}

       遇到的问题:1.当path为根目录时(D:\),无法搜索出结果,而在D盘下的某一文件夹下可以得到结果。

               2.当path为根目录C盘时,会报空指针异常。

0 0