________________IO中遍历文件的一些用法

public class IOTest {

public static void main(String[] args) {
File f1 = new File("e:\\1\\2\\3\\我的练习本.txt");
File path = new File("e:\\1\\2\\3");
File f2 = new File("e:\\1\\2\\3\\我的教科书.txt");
if (!f1.exists()) {
if (!path.exists())
// mkdirs 和mkdir都是创建文件夹,前者只能创建一层,而后者可以创建多层 但是共同点是创建出来的都是文件夹
path.mkdirs();
try {
// 创建文件
f1.createNewFile();

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
BufferedWriter bw;
try {
bw = new BufferedWriter(new FileWriter(f1, true));
String s = "床前明月光, " + "疑似地上霜。 " + "举头望明月, " + "低头思故乡。 ";
String s1[] = s.split(" ");
for (String o : s1) {
bw.write(o);
bw.newLine();
}
bw.close();

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
f1.renameTo(f2);
File f3 = new File("e:\\");
String[] s2 = f3.list();
// 用list 直接读取E盘下的所有文件,包括文件夹
for (String s : s2) {
System.out.println(s);
}
// 在F3文件里有选择的(文件名包含的内容)寻找文件、文件夹 形成另一个文件型的数组 F4
File[] f4 = f3.listFiles(new FileFilter() {

@Override
public boolean accept(File pathName) {
if (pathName.getName().contains(".")) {
return true;
} else
return false;
}
});

for (File f : f4) {
System.out.println(
// 获取他的名字
"name " + f.getName()
// 获取他的地址
+ "\t path " + f.getPath()
// 获取他的父节点
+ "\t parent " + f.getParent()
// 获取他的空间大小,实际上也就是根目录的大小
+ "\t totolespace " + f.getTotalSpace());
}
System.out.println("_______________糗百分割线_________________________");
//对F3文件夹即E盘进行全盘遍历
fileTraverse(f3);

}
//创建一个遍历目录的方法
public static void fileTraverse(File file) {
if (file.exists()) {
File[] sonFile = file.listFiles();
for (File f : sonFile) {
System.out.println(f.getName());
if (f.isDirectory()) {
fileTraverse(f);
}
}
}
}

}

posted @ 2018-04-03 01:47  637  阅读(153)  评论(0编辑  收藏  举报