您的位置:首页 > 编程语言 > Java开发

java.io.File

2016-06-09 16:18 483 查看
package com.File;

import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class FileDemo1 {
public static void main(String[] args) {

}
/*
* 我们想要实现IO操作,就必须知道硬盘上文件的表现形式
* 而java就提供了一个File类供我们使用
*
* File:文件和目录路径名的抽象表示形式
* 构造方法:
*     File(String pathname)
*     File(String parent,String child)
*     File(File parent,String child)
*/
public void test01(){
//把d:\\demo\\a.txt封装成一个File对象
File file=new File("E:\\demo\\a.txt");

File file2=new File("E:\\demo","a.txt");

File file3=new File("E:\\demo");
File file4=new File(file3,"a.txt");
}

/*
*public boolean createNewFile() :当且仅当不存在创建
*public boolean mkdir() 当且仅当不存在创建文件夹
*public boolean mkdirs() 创建文件夹,如果父文件夹不存在会自动创建出来
*
* 骑白马的不一定是王子,可能是班长
* 注意:你到底是要创建文件还是文件夹,你最清楚,方法不要调错
*/
public void test02() throws IOException{
//我要早e盘目录下创建一个文件夹demo
File file=new File("e:\\demo");
System.out.println("mkdir:"+file.mkdir());

//我要在e盘目录demo下创建一个文件a.txt
File file2=new File("e:\\demo\\a.txt");
System.out.println("createNewFile:"+file2.createNewFile());

//我要在e盘目录test下创建一个文件b.txt
//Exception in thread "main" java.io.IOException: 系统找不到指定的路径。
//注意:想要在某个目录下创建内容,该目录必须首先存在
//        File file3=new File("e:\\test\\b.txt");
//        System.out.println("createNewFile:"+file3.createNewFile());

//我要在e盘目录test下创建一个文件aaa目录
//        File file4=new File("e:\\test\\aaa");
//        System.out.println("mkdir:"+file4.mkdir());

//        File file5=new File("e:\\test");
//        File file6=new File("e:\\test\\aaa");
//        System.out.println("mkdir:"+file5.mkdir());
//        System.out.println("mkdir:"+file6.mkdir());

File file7=new File("e:\\aaa\\bbb\\ccc\\ddd");
System.out.println("mkdirs:"+file7.mkdirs());

File file8=new File("e:\\test\\ddd\\x.txt");
System.out.println("mkdirs:"+file8.mkdirs());
}
/*
* 删除功能:public boolean delete()
*
* 注意:
*         A:如果你创建文件或者文件夹忘了写盘符;路径,那么默认在项目路径下
*        B:java中的删除不走回收站
*        C:如果要删除一个文件夹,请注意该文件夹内不能包含文件夹或者文本
*/
public void test03() throws IOException{
//        File file=new File("e:\\a.txt");
//        System.out.println("createNewFile:"+file.createNewFile());

//我不小心写成这个样子
File file=new File("a.txt");
System.out.println("createNewFile:"+file.createNewFile());

File file2=new File("aaa\\bbb\\ccc");
System.out.println("mkdirs:"+file2.mkdirs());

File file3=new File("a.txt");
System.out.println("delete:"+file3.delete());

File file4=new File("aaa\\bbb\\ccc");
System.out.println("delete:"+file4.delete());

//        File file5=new File("aaa");
//        System.out.println("delete:"+file5.delete());//要删除一个文件夹必须先删除它的子元素

File file6=new File("aaa\\bbb");
File file7=new File("aaa");
System.out.println("delete:"+file6.delete());
System.out.println("delete:"+file7.delete());
}
/*
*
* 重命名功能:public boolean renameTo(File dest)
*         如果路径名相同,就是改名字
*         如果路径名不同,就是改名并且剪切
*
* 路径以盘符开始: 绝对路径: c:\\a.txt
* 路径不易盘符开始: 相对路径  a.txt
*/
public void test04(){
//        File file=new File("林青霞.jpg");
//        if(!file.exists()){
//            file.createNewFile();
//        }
//需求,我要修改这个文件的名称为东方不败.jpg

//        File newFile=new File("东方不败.jpg");
//        System.out.println("renameTo:"+file.renameTo(newFile));
File file2=new File("东方不败.jpg");
File newFile2=new File("e:\\林青霞.jpg");
System.out.println("renameTo:"+file2.renameTo(newFile2));
}
/*
* 判断功能:
*     public boolean isDirectory()
*     public boolean isFile()
*     public boolean exists()
*     public boolean canRead()
*     public boolean canWrite()
*     public boolean isHidden()
*
*/
public void test05(){
File file=new File("a.txt");

System.out.println("isDirectory:"+file.isDirectory());
System.out.println("isFile:"+file.isFile());
System.out.println("exists:"+file.exists());
System.out.println("canRead:"+file.canRead());
System.out.println("canWrite:"+file.canWrite());
System.out.println("isHidden:"+file.isHidden());
}
/*
* 获取功能:
* public String getAbsolutePath() 获取绝对路径
* public String getPath() 获取相对路径
* public String getName() 获取名称
* public long length() 获取长度,字节数
* public long lastModified() 获取最后一次修改的时间,毫秒值
*
*/
public void test06(){
//        File file=new File("demo");
//        file.mkdirs();
//        File file1=new File("demo\\text.txt");
//        file1.createNewFile();

File file=new File("demo\\text.txt");
System.out.println("getAbsolutePath:"+file.getAbsolutePath());
System.out.println("getPath:"+file.getPath());
System.out.println("getName:"+file.getName());
System.out.println("length:"+file.length());
System.out.println("lastModified:"+file.lastModified());

//
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(new Date(file.lastModified())));
}
/*
* 获取功能:
*     public String[] list():获取指定目录下所有文件或者文件夹的名称数组
*     public File[] listFiles() 获取指定目录下所有文件或者目录的File数组
*/
public void test07(){
File file=new File("e:\\");

String[] strArray=file.list();
for(String s:strArray){
System.out.println(s);
}
System.out.println("----------------");
File[] fileArray=file.listFiles();
for(File f:fileArray){
System.out.println(f.getName());
}
}
/*
* 使用文件名称过滤器,类似于treeSet中使用的比较器
*
* 判断在E盘目录下是否有后缀名为.jpg的文件,如果有,就输出此文件名称
*
* 思路:
*     先获取所有的,再判断满足条件就输出
*     获取的时候就已经满足条件了,然后就输出即可
*
* 要想实现这个效果,就必须学习一个接口:FilenameFilter 文件名称过滤器
* public String[] list(FilenameFilter filter)
* public File[] listFiles(FilenameFilter filter)
*/
public void test08(){
File file=new File("e:\\");

//获取该目录下所有文件或者文件夹的String数组
String[] strArray=file.list(new FilenameFilter() {

@Override
public boolean accept(File dir, String name) {
//                System.out.println(dir+"--------"+name);
//                File file=new File(dir,name);
//                System.out.println(file);
//                boolean flag=file.isFile();
//                boolean flag2=name.endsWith(".jpg");
//                return flag && flag2;
return new File(dir,name).isFile() && name.endsWith(".jpg");
}
});
for(String s:strArray){
System.out.println(s);
}
}
//小测试
/*
* 判断在E盘目录下是否有后缀名为.jpg的文件,如果有,就输出此文件名称
*
*/
public void test09(){
File file=new File("e:\\");

File[] files=file.listFiles();
for(File f:files){
if(f.isFile()){
if(f.getName().endsWith(".jpg")){
System.out.println(f.getName());
}
}
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: