import java.awt.Robot;
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;
import java.util.Calendar;
import javax.swing.JOptionPane;
/**
* File 类
* 对文件和文件夹进行操作的类
* File不仅可以对真实文件盒文件夹进行操作,也可以对虚拟文件盒文件夹进行操作
* 基本用法:
* 1.创建File对象 new File("filePath");
* 2.创建文件: createNewFile(); 返回boolean类型 表示是否创建成功
* * 只有在指定的目录下没有该文件时才会创建成功
* 3.创建目录:
* 单层目录:file.mkdir();
* 多层目录:file.mkdirs();
* 4.判断一个文件目录是否存在 file.isDirectory();
* 5. 一些常用判断
*
* */
public class TestFile {
public static void main(String[] args)throws Exception{
Function fun = new Function();
//fun.file1();
//fun.hundreddirectory();
//fun.deleteDirectory();
//fun.core();
//fun.root();
//fun.root2();
//fun.filter();
//fun.filter2();
//fun.fileFilter();
//fun.hidden();
// File file = new File("e:\\");
// fun.search(file, "飘尘.jar");
File file = new File("C:\\Program Files\\Java\\jdk1.6.0_43\\src");
fun.test(file);
}
}
//File 类的基本用法
class Function{
public void file1()throws Exception{
//创建File对象
File file = new File("D:\\files\\java\\A.java");
//当且仅当该目录下没有指定的文件时,则创建一个新的空文件 返回boolean类型 表示是否创建成功
//如果该文件存在了,则不进行创建操作 返回false
//System.out.println(file.createNewFile());
//创建目录
//System.out.println(file.mkdir());
//创建文件夹以及文件
if(file.isDirectory()){
System.out.println("文件目录不存在");
file.mkdirs();
System.out.println("创建成功");
}else{
System.out.println("文件目录已经存在了 直接进行文件创建");
file.createNewFile();
JOptionPane.showMessageDialog(null, "完成");
}
}
//创建百层目录 并将A.class文件放到第10层中
public void hundreddirectory()throws Exception{
StringBuffer s = new StringBuffer();
for(int i = 1;i<=100;i++){
s.append(i);//目录名
s.append("\\");//转义字符 D\\a\\b\\....
}
String ss = new String(s);
File file = new File("d:\\"+ss);
System.out.println(file.isDirectory());
//System.out.println(file.mkdirs());
}
//删除文件目录
public void deleteDirectory(){
for(int i = 99;i>=0;i--){
StringBuffer sbb = new StringBuffer();
//每次删除一个文件夹的目录
for(int j = 0;j<=i;j++){
System.out.println(1);
sbb.append(j);
sbb.append("\\");
}
//指定删除的盘符根目录
File ff = new File(new String("d:\\"+sbb));
System.out.println(ff.getAbsolutePath());
System.out.println(ff.delete());
}
}
//常用判断
public void core()throws Exception{
//isFile(); 判断是不是一个文件
File f = new File("D:\\files\\java\\A.java");
System.out.println(f.isFile());
//isDirectory(); 判断是不是一个文件夹(目录)
System.out.println(f.isDirectory());
//exists();判断f这个对象是不是真实的(存在返回TRUE)
System.out.println(f.exists());
//getPath();返回一个FIle类型对象的相对路径
System.out.println(f.getPath());
//getAbsolutePath(); 返回File对象的绝对路径
System.out.println(f.getAbsolutePath());
//isHidden(); 是不是一个隐藏文件
System.out.println(f.isHidden());
//length();返回文件的大小 * 只有文件才有大小
System.out.println(f.length());
//移动或从命名一个文件或文件夹
File file = new File("d:\\files\\java\\B.java");
System.out.println(file.renameTo(new File("d:\\files\\java\\B.java")));
//返回一个文件的最后修改时间
long lon = file.lastModified();
Calendar c = Calendar.getInstance();
c.setTimeInMillis(lon);
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH)+1;
int day = c.get(Calendar.DAY_OF_MONTH);
int hour = c.get(Calendar.HOUR);
int minute = c.get(Calendar.MINUTE);
int second = c.get(Calendar.SECOND);
int week = c.get(Calendar.DAY_OF_WEEK);
System.out.println(year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second);
}
//得到根目录下所有文件
public void root(){
File file = new File("d:\\");
File[] files = file.listFiles();
for(File f:files){
System.out.println(f);
}
}
//得到根目录下所有文件名以及绝对路径
public void root2(){
File file = new File("d:\\");
File[] files = file.listFiles();
if(files != null){
for(File f:files){
if(f.isFile()){
System.out.println(f.getAbsolutePath());
}else{
System.out.println(f);
}
}
}
}
//文件名过滤器
public void filter(){
File file = new File("e:\\新建文件夹\\");
MyFilenameFilter mf = new MyFilenameFilter();
String[] files = file.list(mf);
for(String s:files){
System.out.println(s);
}
}
//匿名类+文件名过滤器
public void filter2(){
File file = new File("e:\\新建文件夹\\");
String[] names = file.list(new FilenameFilter(){
@Override
public boolean accept(File file,String name){
return name.toLowerCase().endsWith(".class") || name.toLowerCase().endsWith(".java");
}
});
for(String ss:names){
System.out.println(ss);
}
}
//对文件的过滤
public void fileFilter(){
File file = new File("e:\\");
File[] files = file.listFiles(new FileFilter(){
@Override
public boolean accept(File file){
return file.length()>1024;
}
});
for(File f:files){
System.out.println(f);
}
}
//找出隐藏的文件
public void hidden(){
File file = new File("c:\\");
File[] files = file.listFiles(new FileFilter(){
@Override
public boolean accept(File file){
return file.isHidden();
}
});
for(File f:files){
System.out.println(f);
}
}
//获得指定文件绝对路径
public static void search(File file,String name){
File[] files = file.listFiles();
if(files != null){
for(File f:files){
if(f.isDirectory()){
search(f,name);
}else{
if(f.getName().equals(name)){
System.out.println(f.getAbsolutePath());
}
}
}
}
}
//查看下 jdk6.0_43 核心类库总共多少个类
static int i;
public static void test(File file){
if(file.list() != null){
File[] fi = file.listFiles(new FilenameFilter(){
@Override
public boolean accept(File ff,String name){
File fff = new File(ff,name);
if(fff.isDirectory()){
test(fff);
}
return name.toLowerCase().endsWith(".java");
}
});
for(File f:fi){
//System.out.println(f);
i++;
}
}
System.out.println(i);
}
}
//文件过滤器
class MyFilenameFilter implements FilenameFilter{
public boolean accept(File file,String name){
//System.out.println("File:"+file+" name:"+name);
return name.toLowerCase().endsWith(".java");
}
}
File 类 常用方法
最新推荐文章于 2024-08-20 17:23:57 发布