Chinaunix

标题: Java文件操作 [打印本页]

作者: 170870024    时间: 2008-12-09 12:57
标题: Java文件操作

java.io包提供了大量的流类,其中所有输入流都是InputStream抽象类(字节输入流)和Reader抽象类(字符输入流)的子类,而所有的输出流都是OutputStream抽象类(字节输出流)和Writer抽象类(字符输出流)的子类。
File类:(处理文件和目录)
File对象主要获取文件本身的属性,如文件目录、文件长度、和文件读写权限等,不涉及对文件内容的读写操作。
创建File对象的构造方法有如下三个:
  File(String filename)
  File(String directoryPath, String filename)
  File(File f, String filename)  //f是制定一个目录的文件
文件的属性:
经常使用File类下列方法获取文件本身一些信息:
  public String getName()   //获取文件名
  public boolean canRead()  //判断文件是否可读
  public boolean canWrite()  //判断文件是否可写
  public boolean exists()   //判断文件是否存在
  public long length()   //获取文件长度(字节单位)
  public String getAbsolutePath()  //获取文件绝对路径
  public String getParent()  //获取文件父目录
  public boolean isFile()   //判断文件是否是一个正常文件,而不是目录
  public boolean isDirectory()  //判断文件是否是一个(已存在)目录
  public boolean isHidden()  //判断文件是否是隐藏文件
  public long lastModified()  //获取文件最后修改时间(时间是从1970年午夜至文件最后修改时刻的毫秒数)
目录:
1、创建目录:
使用File对象调用方法public boolean mkdir()可创建一个目录,成功创建返回true,否则返回false(如果该目录已经存在则返回false)。
2、列出目录中文件:
如果File对象是一个目录,该对象可以调用下列方法列出该目录下的文件和子目录。
  public String[] list()   //用字符串形式返回目录下的全部文件
  public File[] listFiles()  //用File对象形式返回目录下的全部文件
文件过滤器:
有时需要列出目录下指定类型文件,可使用File类的两个方法,如下:、
  public String[] list(FilenameFilter obj)
  public File[] listFiles(FilenameFilter obj)
FilenameFilter是一个接口,该接口有一个方法:
  public boolean accept(File dir, String name)
使用list方法时,需要想该方法传递一个实现FilenameFilter接口的对象。list方法执行时,参数不断回调接口方法accept(File dir, String name),参数name是实例化目录的一个文件名,参数dir为调用list的当前目录,当接口方法返回true时,list方法就将目录dir中的文件存放到返回的数组中。
例子:(列出当前目录下全部java文件名称)
  import java.io.*;
  public class test1 {
   public test1() {
   // TODO 自动生成构造函数存根
   }
   public static void main(String[] args) {
    File dir = new File(".");  //系统中"."表示当前目录,".."表示当前上一级目录,("\"为根目录,但为了转义表示为"\\")
    FileAccept acceptCondition = new FileAccept("java");
    String[] fileName = dir.list(acceptCondition);
    for(int i=0; i

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/84086/showart_1709844.html




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2