1.IO流的框架
2.File--API部分方法
1)file.isDirectory()-----判断是否为目录
2)file.isFile()------判断是否为文件
3)file.mkdir()------创建指定目录
4)file.creatNewFile()------创建指定新的文件
5) file.list()------列出下一级目录内的所有文件和目录,返回类型为String类型数组
6) file.listFiles()------返回类型为File类型数组
package test;
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;
import java.io.IOException;
public class FileDemo {
public static void main(String[] args) {
File file = new File("D:\\java视频\\java基础");
System.out.println("绝对路径: " + file.getAbsolutePath());// 返回绝对路径
System.out.println("上一级目录: " + file.getParent());// 返回上一级目录
System.out.println("是否目录: " + file.isDirectory());// 判断是否目录
System.out.println("是否文件: " + file.isFile());// 判断是否文件
System.out.println("是否存在: " + file.exists());// 判断文件是否存在
System.out.println("文件长度:" + file.length());// 文件长度
// File file2=new File("D:\\java视频\\黑马教程");
// System.out.println(file2.mkdir());
// File file3 = new File("D:\\\\java视频\\\\黑马教程\\hello.txt");
// try {
// file3.createNewFile();
// } catch (IOException e) {
//
// e.printStackTrace();
// }
// file3.delete();
String[] files = file.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".mp4");
}
});
for (String f : files) {
System.out.println(f);
}
File[] files2 = file.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
// TODO Auto-generated method stub
return name.endsWith(".mp4");
}
});
for (File f : files2) {
System.out.println(f.getName()+"---"+f.length());
}
File [] files3=file.listFiles(new FileFilter() {
@Override
public boolean accept(File pathName) {
// TODO Auto-generated method stub
return pathName.getName().endsWith(".mp4");
}
});
for (File f : files2) {
System.out.println(f.getName()+"---"+f.length());
}
}
}
3.File实例---迭代一个目录并输出显示
思路:采用迭代的方法进行输出,if该抽象路径是一个文件或者该目录是空的就返回,else获得其内部目录。对获得的目录利用StringBuffer加工,文件夹在前,文件在后,返回一个File类型的数组。遍历这个数组后,如果是文件就获取其名字,并在名字前加制表符(根据级别判断制表符多少),如果是目录,获取其名字并在名字前加制表符(根据级别判断制表符多少),后边加“\\”。输出这个字符串。在进行判断,如果是目录leavel++;迭代;leavel--;。
package test;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class IteratorFileDemo {
public static void main(String[] args) {
File file = new File("D:\\java视频\\java基础");
IteratorFile.Iterator(file);
}
}
class IteratorFile {
private static int leavel = 0;
public static void Iterator(File file) {
if (file != null) {
if (file.isFile() || file.listFiles().length == 0) {
return;
} else {
File[] files = file.listFiles();
// 先输出文件夹再输出文件
files = sort(files);
for (File f : files) {
StringBuilder sb = new StringBuilder();
if (f.isFile()) {
sb.append(getTab(leavel));
sb.append(f.getName());
} else {
sb.append(getTab(leavel));
sb.append(f.getName());
sb.append("\\");
}
System.out.println(sb.toString());
if (f.isDirectory()) {
leavel++;
Iterator(f);
leavel--;
}
}
}
}
}
private static File[] sort(File[] file) {
List<File> fileList = new ArrayList<File>();
for (File f : file) {
if (f.isDirectory()) {
fileList.add(f);
}
if (f.isFile()) {
fileList.add(f);
}
}
return fileList.toArray(new File[fileList.size()]);
}
private static String getTab(int l) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < l; i++) {
sb.append("\t");
}
return sb.toString();
}
}