今天又是看了一天的视频,毕老爷真是好帅啊。那种对知识点的讲解,好精辟啊!
以下程序虽小,但是都很好用啊,留起来以后必有大用啊。
文件列表
1.listRoot方法
listRoot获取系统的根路径,也就是磁盘的盘符
public static void listRootDemo()
{
File []files = File.listRoots();
for(Filefile : files)
{
System.out.println(file);
}
2.list 方法
list方法是用来得到file对象的目录文件列表 ,返回是 String [ ]
注意
调用list方法的file对象必须是封装了一个目录,并且该目录必须存在。
public static void listDemo()
{
File f =new File("c:\\");
String []names = f.list();
for(Stringname : names)
{
System.out.println(name);
}
}
过滤文件
文件过滤的代码
import java.io.File;
import java.io.FilenameFilter;
public class FileDemo4 {
public staticvoid main(String[] args) {
// TODOAuto-generated method stub
File f =new File ("c:\\");
String[]names = f.list(new FilenameFilter() {
@Override
publicboolean accept(File dir, String name) {
//File dir 指的是的File 的目录,name是文件的名字
returnname.endsWith(".txt");
}
});
for(Stringname : names)
{
System.out.println(name);
}
}
}
列出指定目录文件或者文件夹夹,以及包含子目录的内容。也就是列出指定目录的所有内容。
因为目录中还有目录,只要使用同一个列出目录的功能函数完成即可。在列出过程中出现的还是目录的话,还可以在次掉用本功能。这种表现形式,或者编程方法称为递归。
使用递归应注意
1.限定条件
2.要注意递归的次数,尽量避免内存溢出的情况。
import java.io.File;
public class FileDemo5 {
public staticvoid main(String[] args) {
// TODOAuto-generated method stub
File dir= new File("F:\\我的文档");
showDir(dir);
}
public staticvoid showDir(File fir)
{
System.out.println(fir);
File []files = fir.listFiles();
for(Filefile : files)
{
if(file.isDirectory())
{
showDir(file);
}
else
System.out.println(file);
}
}
}
将一个指定目录下的Java文件的绝对路径,存储到一个文本文件中。建立一个Java文件列表
思路:
1.对指定的目录进行递归扫描
2.过去递归过程中所有的Java文件的路径
3.将这些路径存储到集合
4.将集合中的数据写入到一个文件中。
代码如下:
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class FileDemo7 {
public staticvoid main(String[] args) {
// TODOAuto-generated method stub
File fir= new File(".");
List<File>list = new ArrayList<File>();
fileToList(fir,list);
System.out.println(list.size());
writeToFile(list,"C:\\writer.txt");
}
public staticvoid writeToFile(List<File>list,String javaListFile)
{
BufferedWriterbufw =null;
try {
bufw= new BufferedWriter(new FileWriter(javaListFile));
for(Filef:list)
{
Stringpath = f.getAbsolutePath();
bufw.write(path);
bufw.newLine();
bufw.flush();
}
} catch(IOException e) {
//TODO Auto-generated catch block
thrownew RuntimeException("书写文件失败!");
}
finally{
try {
if(bufw!=null)
bufw.close();
}catch (IOException e) {
//TODO Auto-generated catch block
thrownew RuntimeException("关闭流资源失败");
}
}
}
public staticvoid fileToList(File dir,List<File> list)
{
File[]files = dir.listFiles();
for(Filefile: files)
{
if(file.isDirectory())
{
fileToList(file,list);
}
else
{
if(file.getName().endsWith(".java"))
{
list.add(file);
}
}
}
}
}