您的位置:首页 - 教程 - Java - 正文
JavaIO(01)File类详解
File类
file类中的主要方法和变量
 
常量:
表示路径的分割符:(windows)
作用:根据java可移植性的特点,编写路径一定要符合本地操作系统要求的分割符;
public static final String separator            
public static final String pathSeparator

package cn.itcast;

import java.io.File;

public class DemoFile02 {
     public static void main(String[] args) {
          
           System.out.println( "PathSeparator分隔符:"+File.pathSeparator );
           System.out.println( "Separator分隔符:"+File.separator );
     }
}

输出:

PathSeparator:;
Separator:

  

构造:
创建file类对象,传入完成路径
public File(String pathname)
public File(String parent,String child)
package cn.itcast;
import java.io.File;
public class DemoFile03 {
public static void main(String[] args) {
     
     File file = new File("G:\\JavaTest\\test.txt" );
     System.out.println(file);
     File file2 = new File("G:\\JavaTest" , "test.txt" );
     System.out.println(file2);
}
}

输出:
G:\JavaTest\test.txt
G:\JavaTest\test.txt

考虑到程序会跨平台操作对上面程序进行修改;

String path = "G:" + File. separator +"JavaTest"+File.separator + "test01.txt" ;
System.out.println(path);
File file = new File(path);

  

普通方法:
 
创建新文件;
public boolean createNewFile() throws IOException
删除文件:
public boolean delete()
判断文件是否存在
public boolean exists()
判断给定的路径是否是一个目录
public boolean isDirectory()
返回文件的长度
public long length()
File中封装的什么路径就返回什么路径
public String getPath()
获取文件名称
public String getName()
获取文件的全路径(绝对路径)
public String getAbsolutePath()
是否是文件
public boolean isFile()
列出指定目录的全部内容,只是列出了名称,返回一个字符串数组
public String[] list()
package cn.itcast;
import java.io.File;

public class DemoFile03 {
public static void main(String [] args) {
     
     //给出路径
     File file = new File("G:"+File.separator +"JavaTest" +File.separator+"Test");
     System.out.println(file.isDirectory());
     //file.mkdir();
     String str[] = file.list();
     for ( int i = 0; i < str.length ; i++) {
          System. out.println(str[i]);
     }
     }
}
列出指定目录的全部内容,会列出路径
public File[] listFiles()
package cn.itcast;

import java.io.File;

public class DemoFile04 {
     public static void main(String[] args) {
          
          File file = new File("G:"+File.separator +"JavaTest" +File.separator+"Test");
          File[] files = file.listFiles();
           for (int i = 0; i < files.length; i++) {
              System. out.println(files[i]);
          }
     }
}
创建一个目录
public boolean mkdir()
为已有的文件重新命名
public boolean renameTo(File dest)
实例01:
public class DemoFile01 {
     public static void main(String[] args){
           //如果考虑跨平台需要这样写
          String path = "G:" + File.separator +"JavaTest"+File.separator + "test01.txt" ;
          File file = new File(path);
           //当程序删除文件的之前需要判断文件是否存在
           if(file.exists())
          {
              System. out.println("我要删文件了" );
              file.delete();
          } else{
              System. out.println("原来你没在呀,那我先创建一个吧~" );
               try {
                   file.createNewFile();
              } catch (IOException e) {
                    // TODO: handle exception
                   e.printStackTrace();
              }
          }
          
     }
}

以上代码也不是最完美的,会出现一些延迟,这是因为所有的操作需要通过JV完成所造成的,所以根据需求,可以考虑文件的后缀是否存在;


实例02:使用了文件的递归

package cn.itcast;
/*
 * 列出指定目录的全部内容
 * 给定一个目录。要求列出此目录下的全部内容,因为给定目录可能存在子文件夹,
 * 此时要求也可以把所有文件夹的子文件夹列出来;
 */
import java.io.File;
public class DemoFile05 {
     public static void main(String[] args ) {
          File my = new File("G:" + File.separator + "JavaTest");
           print(my);
     }

     public static void print(File file) {
           if (file != null) {
               if (file.isDirectory()) {
                   File f[] = file.listFiles();
                    if (f != null ) {
                         for (int i = 0; i < f.length; i++) {
                             System. out.println(f[i]);
                        }
                   }
              }
          } else {
              {
                   System. out.println(file);
              }
          }
     }
}

  


评论: