---------------------- IO流 ---------------------
dsfsdf
IO:处理设备数据
输出:核心到外围设备
流就是一种系统资源,使用完后一定要释放
FileMethod.java
package cn.itcast.file;
import java.io.File;
import java.io.IOException;
import java.text.DateFormat;
import java.util.Date;
public class FileMethod {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
File file3 =new File("c:\\abc\\3m.txt");
File filet =new File("demo.txt");
File file=new File("d:\\38.txt");
// file.createNewFile();
// Method1(file);
//method2(file);
System.out.println(file.getFreeSpace());
}
private static void method2(File file) throws IOException {
//create
/* boolean b=file.createNewFile();//文件存在,则不创建返回false,不存在才会创建并返回true
System.out.println(b);*/
//delete
//删除文件夹时必须保证该文件病人没有内容。从最里往外删
// boolean b =file.delete();
System.out.println("ext"+file.exists());
//创建文件夹
boolean bt =file.mkdirs();
//System.out.println(bt);
System.out.println("file"+file.isFile());
System.out.println("dir"+file.isDirectory());
}
private static void Method1(File file) {
//获取绝对路径
String path =file.getAbsolutePath();
//获取file对象的封装路径,封装的是什么 获取的就是什么
String path1=file.getPath();
//获取文件最后一次修改时间,
long time=file.lastModified();
Date date =new Date(time);
DateFormat dateformat =DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);
String str_date=dateformat.format(date);
//文件是否隐藏
boolean b=file.isHidden();
System.out.println(b);
System.out.println(str_date);
System.out.println(time);
System.out.println(path);
System.out.println(path1);
}
}
File dir = new File("c:\\");
// 当前目录下的所有文件和文件夹名称包含隐藏文件
// 只获取名称
/*
* String[] names =dir.list(); System.out.println(names);
* if(names!=null) for(String name : names){ System.out.println(name); }
*/
File[] files = dir.listFiles();
for (File file : files) {
System.out.println(file);
System.out.print(file.length());
}
---------------------- 过滤器 ---------------------
FileTest.java
package cn.itcast.file;
import java.io.File;
import java.io.FilenameFilter;
import cn.itcast.filter.FilterByContain;
import cn.itcast.filter.FilterBySuffic;
public class FileTest {
public static void main(String[] args) {
//list(FilenameFilter filter)
File dir =new File("c:\\");
FilenameFilter filter =new FilterBySuffic(".java"); //多态
filter =new FilterByContain("Test");
//传过滤器
String[] names =dir.list(filter);
for(String name:names){
System.out.println(name);
}
}
}
FilterBySuffix
package cn.itcast.filter;
import java.io.File;
import java.io.FilenameFilter;
/*
* 根据文件后缀名过滤
*/
public class FilterBySuffic implements FilenameFilter {
private String suffix;
public FilterBySuffic(String suffix) {
super();
this.suffix = suffix;
}
/*
* (non-Javadoc)
* name 被遍历目录中的文件夹或者文件名称
* @see java.io.FilenameFilter#accept(java.io.File, java.lang.String)
*/
@Override
public boolean accept(File dir, String name) {
return name.endsWith(suffix);
}
}
FilterByContain
package cn.itcast.filter;
import java.io.File;
import java.io.FilenameFilter;
public class FilterByContain implements FilenameFilter {
private String content;
public FilterByContain(String content) {
super();
this.content = content;
}
@Override
public boolean accept(File dir, String name) {
return name.contains(content);
}
}
---------------------- 获取指定目录内容
GetAllFile
package cn.itcast.file.demo;
import java.io.File;
public class GetAllFile {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
/*
* 获取指定目录下的内容
* 递归:函数自身调用自身,
* 功能被重复使用,但是每次参与运算数据不同时,可以考虑
*
*/
File dir =new File("F:\\h\\record");
getAllFiles(dir);
}
private static void getAllFiles(File dir) {
System.out.println("dir:"+dir);
// TODO Auto-generated method stub
//获取目录文件对象数组
File[] files =dir.listFiles();
//数组遍历
for(File f : files){
if(f.isDirectory()){
getAllFiles(f);
}else
System.out.println("file:"+f);
}
}
}