一、File类:
利用File可以创建一个路径或是一个文件,并对文件或是路径进行一些操作。
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
//1 路径的创建与删除
File file = new File("c:/abc/def");
// System.out.println(file);
// System.out.println(file.exists());
if (!file.exists()) {
file.mkdirs();
} else {
file.delete();
}
//2 文件的创建与删除
File file2 = new File("c:\\test.txt");
if (!file2.exists()) {
file2.createNewFile();
} else {
file2.delete();
}
//3 列举某路径下的所有文件夹名称和文件名称
File file3 = new File("c:\\");
String[] files = file3.list();
for (String filename : files) {
System.out.println(filename);
}
//4 递归列举某路径下的所有文件夹名称和文件名称
File file4 = new File("c:\\");
if (file4.isFile()) {
System.out.println(file4);
} else {
// listFile(file4);
}
//5 列举某文件夹下的以“****"结尾(开头)的文件名称
System.out.println("==========");
File file5 = new File("c:\\eclipse");
String[] listfilenames = file5.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
System.out.println(dir + "--" + name);
if (name.endsWith(".exe"))
return true;
else
return false;
}
});
for (String filename : listfilenames) {
System.out.println(filename);
}
}
//递归列举某路径下的文件夹名称和文件名称
public static void listFile(File file) {
if (file != null) {
File[] listFiles = file.listFiles();
if (listFiles != null) {
for (File filetmp : listFiles) {
if (filetmp.isDirectory()) {
listFile(filetmp);
} else {
System.out.println(filetmp);
}
}
}
}
}
}
二、字节输出流:
字节输出流与输入流都是同样的形式,不过是用到的类不同,在输入流中用到的类是FileInputStream。
import java.io.File;
import java.io.FileFilter;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
File file=new File("c:\\aaa.txt");
FileOutputStream fos=new FileOutputStream(file,true);
//1
long l1=System.currentTimeMillis();
fos.write(65);
fos.write(97);
fos.write(13);
fos.write(10);
long l2=System.currentTimeMillis();
//2
byte[] bytes=new byte[]{65,66,67,127,102,103};
fos.write(bytes);
fos.write(13);fos.write(10);
long l3=System.currentTimeMillis();
System.out.println(l2-l1);
System.out.println(l3-l2);
//3
fos.write(bytes,3,6);
fos.close();
}
}