1. Java中I/O的File类
class="java">
1. 在windows中创建一个文件,用createNewFile()方法。
1) Windows使用c:\表示;
2) 其他系统使用c:/表示;
3) 但在java中”\”表示转义字符,所以要使用”\\”来表示路径中的”\”;
2. 分隔符使用File.pathSeparator比较好,不会受系统的影响。但是生成的文件是相对的目录(项目所在默认为根目录)。
File file = new File(File.pathSeparator + "abc.txt");
import java.io.File;
public class FileTest1 {
public static void main(String[] args) throws Exception {
File file = new File("c:\\abc.txt");
System.out.println(file.createNewFile());
}
}
3. 只要有路径,两个字符串拼接起来可以组成一个路径就可以 new File("c:/abc", "xyz/hello.txt")。
import java.io.File;
public class FileTest2 {
public static void main(String[] args) throws Exception {
File file = new File("c:/abc");
File file2 = new File("c:/abc", "xyz/hello.txt");
file2.createNewFile();
}
}
4. 创建一个/多个目录使用file.mkdir()和file.mkdirs()方法。
import java.io.File;
public class FileTest3 {
public static void main(String[] args) {
File file = new File("c:/abc/xyz/hello");
System.out.println(file.mkdirs());
System.out.println(file.isFile());
}
}
5. file.list()返回路径首层的所有文件和文件夹;返回String[]数组。
file.listFiles()返回路径首层的所有文件和文件夹;返回File[]数组。
getParent()获取文件所在的文件夹名。
import java.io.File;
public class FileTest4 {
public static void main(String[] args) {
File file = new File("c:/abc");
String[] names = file.list();
for(String name : names){
System.out.println(name);
}
File[] files = file.listFiles();
for(File f : files){
System.out.println(f.getName());
//System.out.println(f.getParent());
}
}
}
6. file.delete()方法可以删除文件。file.createNewFile()方法可以创建文件。
import java.io.File;
public class FileTest5 {
public static void main(String[] args) throws Exception {
File file = new File("c:\\abc\\xyz\\hello\\abc.txt");
//file.createNewFile();
file.delete();
}
}
7. name.lastIndexOf(".java")包含".java"的文件。
endsWith(".java")以".java"结尾的文件。
FileNameFilter类可以重载File类的list()方法。
import java.io.File;
public class FileTest6 {
public static void main(String[] args) {
File file = new File("C:\\abc\\xyz\\hello");
String[] names = file.list();
for (String name : names) {
if (name.endsWith(".java")) {
System.out.println(name);
}
}
}
}
8. 重写file.list(new FilenameFilter())方法(策略模式)。
构造accept(File dir, String name)方法,dir是文件路径,name是文件名。
import java.io.File;
import java.io.FilenameFilter;
public class FileTest7 {
public static void main(String[] args) {
File file = new File("c:\\abc\\xyz\\hello");
String[] names = file.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
if (name.endsWith(".txt")) {
return true;
}
return false;
}
});
for(String name : names){
System.out.println(name);
}
}
}
9. 使用File.Separator路径分隔符创建项目所在的盘符的根目录的文件。
import java.io.File;
public class FileTest8 {
public static void main(String[] args) throws Exception {
File file = new File(File.separator);
File file2 = new File(file, "test.txt");
System.out.println(file2.createNewFile());
}
}