Java IO(一)

  

  在Java中,所有的io类都放在java.io包中。

  在IO操作中,我们总是会从一个源数据读取到一个目标数据。那么这个源数据和目标数据可以是文件,流等等。那最常见的就是文件,就像我们在本地电脑上写入东西一样,写入到一个文件中。在java中操作文件,就不得不提到一个File类。

File

  File类在整个IO包中是一个独立的类,主要完成一些对文件的操作。表示文件和目录路径名的抽象表示形式。

此类的定义如下

  public class File extends Object implements Serializable,Comparable<File>

  需要注意的是,File类的实例是不可改变的。也就是说,一旦创建,File对象表示的抽象路径名将永不改变。

该类中的字段:

1, static String pathSeparator 表示与系统有关的路径分隔符,表示为一个字符串
2, static char pathSeparatorChar 表示与系统有关的路径分隔符
3, static String separator 表示与系统有关的额默认名称分隔符,表示为一个字符串
4 static char separatorChar 表示与系统有关的默认名称分隔符

 

 

 

 

下面我们通过一个实例来看看这些字段究竟是什么:

package com.fuwh.file;

import java.io.File;

public class FileTest01 {
    public static void main(String[] args) {
    
        System.out.println("pathSeparator:"+File.pathSeparator);
        System.out.println("pathSeparatorChar:"+File.pathSeparatorChar);
        System.out.println("separator:"+File.separator);
        System.out.println("separatorChar:"+File.separatorChar);
    }
}
View Code

  实际上,这些字符都是根据本地系统来取得的。比如说:separator在windows系统下为‘\’,但是在UNIX系统则为'/'。

因此,在实际的开发中我们建议使用File.separator的形式,因为这样可以提高代码的可移植性。

 

我们在来看看此类的构造方法: 

File(File parent,String child) 根据parent抽象路径名和child路径名称字符串创建一个新File实例
File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新File实例
File(String parent,String child) 根据parent路径名称字符串和child路径名称字符串创建一个新File实例
File(URI uri) 通过将给定的file:URI转换为一个抽象路径名来创建一个新的File实例

 

 

 

 

主要方法: 

1. boolean createNewFile() 当且仅当不存在具有此抽象路径名指定的文件时,创建一个新的空文件
2. boolean delete() 删除此抽象路径名表示的文件或目录
3. boolean exists() 测试此抽象路径名表示的文件或目录是否存在
4. File getAbsoluteFile() 返回此抽象路径名的绝对路径名形式
5. String getAbsolutePath() 返回此抽象路径名的绝对路径名字符串
6. String getName() 返回此抽象路径名表示的文件或目录的名称
7. String getParent() 返回此抽象路径名父母路的路径名字符串,如果没有父路径名则返回null
8. File getParentFile() 返回此抽象路径名父母路的抽象路径名,如果没有指定父目录则返回null
9. String getPath() 将此抽象路径名转换为一个路径名字符串
10. boolean isFile() 测试此抽象路径名指定的文件是否是一个标准文件
11. boolean isDirectory() 测试此抽象路径名指定的文件是否是一个目录
12. boolean isHidden() 测试此抽象路径名指定的文件是否是一个隐藏文件
13. String[] list() 返回一个字符串数组,这些字符串指向此抽象路径名表示的目录中的文件和目录
14. File[] listFiles() 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件
15. boolean mkdir() 差un关键此抽象路径名指定的目录

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

实例

 

package com.fuwh.file;
import java.io.File;
public class FileTest02 {
    public static void main(String[] args) {
        //在当前classpath下创建文件test.txt
        File file=new File("test.txt");
        String path=file.getAbsolutePath();
        String parent=path.substring(0, path.lastIndexOf("\\"));
        listAllFile(parent);
        
    }
    static void listAllFile(String path){
        File files[]=new File(path).listFiles();
        System.out.println(files.length);
        for(int i=0;i<files.length;i++){
            if(files[i].isFile()){
                System.out.println(files[i]);
            }else{
                if(files[i].isDirectory()){
                    listAllFile(files[i].getAbsolutePath());
                }
            }
        }
    }
}
View Code

 

posted @ 2017-02-26 20:06  Ouka傅  阅读(189)  评论(0编辑  收藏  举报