File类

File类
    一个File类的对象,表示了磁盘上的文件或目录
    File类提供了与平台无关的方法来对磁盘上的文件或目录进行操作。

利用File类型的对象向磁盘创建一个目录和一个文件:

代码
import java.io.*;

class FileTest
{
public static void main(String[] args) throws Exception
{
String path
= System.getProperty("user.dir") + "javaFile";// 获取当前程序的路径

File f
= new File(path);// 初始化File类

f.mkdir();
// 创建目录

f
= new File(path + File.separator + "HelloWorld.java");// File.separator用来获取当前操作系统的文件分隔符。

f.createNewFile();
// 创建文件
}
}

在绝对路径下创建文件或目录:

 

代码
import java.io.File;
import java.io.IOException;

public class FileTest {
public static void main(String[] args) throws IOException {
File f
= new File("G:\\java.txt");// 在绝对路径下创建文件。指定G盘
// f.createNewFile();// 创建一个文件
f.mkdir();// 创建一个目录
}
}

默认是在当前程序的目录中创建文件或目录。但是可以像上面一样指定。

 

File f = new File("G:\\java.txt");// 这一句代码在LINUX系统下是不能使用的,因为Linux并没有盘符的概念。

这一句代码中,使用了“\\”。在java中“\”被作为转义字符。第一根反斜杠成功将第二根反斜杠转义。其实下面这种做法也是对的。

File f = new File("G:/java.txt");// 一根正斜杠解决问题

删除文件或目录:delete()

判断文件是否存在:exists()

 

if(f.exists()) {// 判断文件是否存在
  if(!f.canRead()) {// 判断文件是否可读
    f.delete();// 删除文件或目录
  }
}

delete()和deleteOnExit()的区别:

 

  当delete()被调用的时候就删除文件或目录。当程序中止的时候才调用deleteOnExit()方法来删除文件或目录。

deleteOnExit()的好处:

  有时候在程序运行的时候可能会产生一些临时文件,但是当退出程序的时候,这些临时文件就没有用了,此时给机子留下了这些垃圾,那么就让程序退出的时候删除这些临时文件

List方法:

  File类当中有一个List()方法,能返回一个目录下的所有文件或目录的名称。

public String[] list()返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。

 

代码
import java.io.File;
import java.io.IOException;

public class FileTest {
public static void main(String[] args) throws IOException,
InterruptedException {
File f
= new File("D:/java/");
String[] names
= f.list();
for (int i = 0; i < names.length; i++) {
System.out.println(names[i]);
}
}
}

list(FilenameFilter filter)方法:

 

要求传递一个文件名的过滤器。它的作用在于给我们提供了一种列出目录下指定打印的文件,比如现在我们只想列出以.java为
后缀名的文件。但是这个文件名的过滤器是一个接口,在这个接口中有一个方法是boolean accept(File dir,String name) ,
使用匿名内部类实现它,如果参数为null,那么它就相当于一个public String[] list(),和上面一个例子用法一样,将会列出目
录下所有的目录和文件。list和accept的返回值分别是String[] 和boolean。

 

代码
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;

public class FileTest {
public static void main(String[] args) throws IOException,
InterruptedException {
File f
= new File("d:/");
String[] names
= f.list(
new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.indexOf(".java") != -1;// 等于-1,表示不存在
}
}
);
for (int i = 0; i < names.length; i++) {
System.out.println(names[i]);
}
}
}

 

String类型当中的indexOf()方法主要是用来在一个String对象当中去查找一个子串。如果子串存在,那么就返回它的索引,如果不存在那么就返回-1;

 

注意在File类当中并没有对文件进行读写的方法。

 

 

posted @ 2010-12-23 15:34  meng72ndsc  阅读(2539)  评论(0编辑  收藏  举报