下面使用File类在C盘创建一个文本文件
package com.test.io;
import java.io.File;
import java.io.IOException;
public class FileTest {
public static void main(String[] args) throws IOException {
//在windows系统中使用"/"表示路径分隔符,也可使用"\\"作为路径分隔符
File file = new File("c:/abc.txt");
System.out.println(file.createNewFile());
}
}
也可使用File.separator作为文件分隔符,其可根据不同的操作系统来生成分隔符。
File file = new File("c:"+File.separator+"abc.txt");
下面使用File(File parent,String child)构造函数创建一个文本文件
package com.test.io;
import java.io.File;
import java.io.IOException;
public class FileTest2 {
public static void main(String[] args) throws IOException {
File file = new File("c:\\abc");
File file2 = new File(file,"hello.txt");
file2.createNewFile();
}
}
上例中需注意的是,abc文件夹必须先存在,才能在abc下创建hello.txt文件。
可以使用File类的以下两个方法来判断当前File是目录还是文件。
下面使用File类来创建文件夹
package com.test.io;
import java.io.File;
public class FileTest3 {
public static void main(String[] args) {
File file = new File("c:/abc/xyz");
file.mkdir();
}
}
运行以上代码可以成功在abc目录下创建xyz文件夹。同理,abc目录必须事先存在。
但可以使用File类的mkdirs方法创建多个文件夹。
package com.test.io;
import java.io.File;
public class FileTest3 {
public static void main(String[] args) {
File file = new File("c:/abc/xyz/hello");
file.mkdirs();
}
}
运行如上代码,可以在C盘上同时创建abc,xyz,hello三个文件夹。
使用File类中的
public String[] list()
方法可以列出此目录下的所有文件夹名与文件名,如下代码所示。
package com.test.io;
import java.io.File;
public class FileTest4 {
public static void main(String[] args) {
File file = new File("C:/Program Files");
String[] names = file.list();
for (String name : names) {
System.out.println(name);
}
}
}
也可使用File类中的
public File[] listFiles()
方法,它返回的是该文件夹下的文件夹或文件,并File对象形式返回。
下例中过滤出以.exe结尾的文件。用FilenameFile匿名内部类来过滤
package com.test.io;
import java.io.File;
import java.io.FilenameFilter;
public class FileTest4 {
public static void main(String[] args) {
File file = new File("C:/Program Files");
String[] names = file.list(
new FilenameFilter(){
public boolean accept(File dir, String name) {
//过滤出以.exe结尾的文件
if(name.endsWith(".exe")){
return true;
}
return false;
};
}
);
for (String name : names) {
System.out.println(name);
}
}
}