File
(1)File是文件和目录路径名的抽象表示。IO流操作中大部分都是对文件的操作,因此Java就提供了File类供我们来操作文件。

(2)构造方法

根据一个路径得到一个File对象
         A:File file = new File("e:\\demo\\a.txt");

根据一个目录和一个子文件/目录得到File对象
        B:File file = new File("e:\\demo","a.txt");

根据一个父File对象和一个子文件/目录得到一个File对象
       C:File file = new File("e:\\demo");
       File file2 = new File(file,"a.txt");

public static void main(String[] args) {
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");
}

  

(3)File类的功能
    A:创建功能

public boolean createNewFile()   创建文件  如果存在就不创建了

public boolean mkdir()   创建文件夹  如果存在这样的文件夹就不创建了

public boolean mkdirs()   创建文件夹  如果父文件夹不存在,会帮您创建出来

 public class FileDemo1 {
public static void main(String[] args) throws IOException {
File file = new File("e:\\demo");
System.out.println("mkdir:" + file.mkdir()); File file2 = new File("e:\\demo\\a.txt");
System.out.println("ceateNewFile:" + file2.createNewFile()); File file3 = new File("e:\\aaa\\bbb\\ccc\\dddd");
System.out.println("mkdir:" + file3.mkdirs());
} }

B:删除功能

public boolean delete()

注意:如果创建文件或文件夹没有指定盘符路径,默认在项目路径下

Java中的删除不走回收站的哦

要删除一个文件夹,这是这个文件夹下面不能包含文件或文件夹

 public class FileDemo2 {
public static void main(String[] args) throws IOException {
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()); System.out.println("delete:" + file.delete());
//删除ccc文件夹
System.out.println("delete:" + file2.delete()); //删除aaa文件夹
File file3 = new File("aaa\\bbb");
File file4 = new File("aaa");
System.out.println("delete:" + file3.delete());
System.out.println("delete:" + file4.delete()); } }

C:重命名功能

pulbic boolean renameTo(File desc)

 public class FileDemo3 {
public static void main(String[] args) {
//先创建一个文件对象
File file = new File("aaa.jpg"); //修改成“bbb.jpg”
File newfile = new File("bbb.jpg"); System.out.println("renameTo:" + file.renameTo(newfile));
} }

D:判断功能

public boolean isDirectory():判断是否是目录

public boolean isFile():判断是否是文件

public boolean exists():判断是否存在

public boolean canRead():判断是否可读

public boolean canWrite():判断是否可写

public boolean isHidden():判断是否隐藏

 public class FileDemo4 {

     public static void main(String[] args) {
File file = new File("a.txt"); System.out.println("isDirectory:" + file.isDirectory());
System.out.println("idFile:" + 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()); }
}

E:获取功能

* public String getAbsolutePath() :获取绝对路径
* public String getPath() :获取相对路径
* public String getName() :获取名称
* public long length() :获取字节数
* public long lastModifiled() :获取最后一次修改时间

 public class FileDemo5 {
/**
* public String getAbsolutePath() :获取绝对路径
* public String getPath() :获取相对路径
* public String getName() :获取名称
* public long length() :获取字节数
* public long lastModifiled() :获取最后一次修改时间
*/ public static void main(String[] args) { File file = new File("demo\\a.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("lastModifiled:" + file.lastModified()); //打印出的时间 1416481977031 转化成年月
Date d = new Date(1416481977031L);
SimpleDateFormat sdt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String s = sdt.format(d);
System.out.println(s);
} }

F:高级获取功能

public String[] list():获取指定目录下的所有文件或者文件夹名称数组
public File[] listFile():获取指定目录下的所有文件或者文件夹的File数组
                         这种方法可以对拿到的File文件可以进一步做其他操作,如获取路径等
 public class FileDemo6 {
public static void main(String[] args) {
File file = new File("e:\\"); //public String[] list():获取指定目录下的所有文件或者文件夹名称数组
String[] strArray = file.list();
for(String s : strArray){
System.out.println(s);
} System.out.println("***********************"); //public File[] listFile():获取指定目录下的所有文件或者文件夹的File数组
//这种方法可以对拿到的File文件做其他操作 如获取路径等
File[] fileArray = file.listFiles();
for(File f : fileArray){
System.out.println(f.getName());
} } }

G:过滤器功能

A:输出指定目录下指定后缀名的文件名称
  a:先获取所有的,在遍历的时候判断,再输出
  b:先判断,再获取,最后直接遍历输出即可

判断E盘目录下是否含有后缀名为.jpg的文件,如果有就输出文件名称
a:先获取所有的,在遍历的时候判断,再输出
 /**
* 判断E盘目录下是否含有后缀名为.jpg的文件,如果有就输出文件名称
*
* 封装E盘目录
* 获取该目录下所有的文件或者文件夹的File数组
* 遍历该File数组得到每一个File对象,然后判断
* 是否是文件
* 是 再判断是否以.jpg结尾
* 是 输出该文件名称
* 否 不用管
* @author Administrator
*
*/
public class FileDemo7 {
public static void main(String[] args) {
//封装E盘目录
File file = new File("e:\\");
//获取该目录下所有的文件或者文件夹的File数组
File[] fileArray = file.listFiles();
//遍历该File数组得到每一个File对象,然后判断
for(File f : fileArray){
//是否是文件
if(f.isFile()){
//是否以.jpg结尾
if(f.getName().endsWith(".jpg")){
//输出该文件名称
System.out.println(f.getName());
} }
}
} }

b:先判断,再获取,最后直接遍历输出即可     采用过滤器改进版本,在放入数组时就判断了,后直接输出

 public class FileDemo8 {
public static void main(String[] args) {
File file = new File("e:\\"); String[] strArray = file.list(new FilenameFilter() { @Override
public boolean accept(File dir, String name) { return new File(dir, name).isFile() && name.endsWith(".jpg");
}
}); for(String s : strArray){
System.out.println(s);
}
} }

案例批量修改文件名称

E:\评书\三国演义\三国演义_001_[评书网-今天很高兴]_桃园三结义.avi   
改成 E:\评书\三国演义\001_桃园三结义.avi
 /**
* 批量修改文件名称
*
* 思路:
* 封装目录
* 获取该目录下所有的文件的File数组
* 遍历该File数组,得到每一个File对象
* 拼接一个新的名称
* @author Administrator
*
*/
public class FileDemo9 {
public static void main(String[] args) {
//封装目录
File srcFolder = new File("E:\\评书\\三国演义"); //获取该目录下所有的文件的File数组
File[] fileArray = srcFolder.listFiles(); //遍历该File数组,得到每一个File对象
for(File file : fileArray){
//E:\评书\三国演义\三国演义_001_[评书网-今天很高兴]_桃园三结义.avi
//改后: E:\评书\三国演义\001_桃园三结义.avi String name = file.getName();//得到 三国演义_001_[评书网-今天很高兴]_桃园三结义.avi int index = name.indexOf("_");
String numberString = name.substring(index + 1, index + 4);//包左不包右 右边要多一个 int endindex = name.lastIndexOf('_');
String nameString = name.substring(endindex); //拼接
String newName = numberString.concat(nameString);//001_桃园三结义.avi File newFile = new File(srcFolder, newName);//E:\\评书\\三国演义\\001_桃园三结义.avi
//重命名
file.renameTo(newFile); }
} }

最新文章

  1. linux c++应用程序内存高或者占用CPU高的解决方案_20161213
  2. windows脚本调用批处理
  3. MVC3中如何输出富文本
  4. [mysql]max_allowed_packet ,centos
  5. Mvc4页面缓存设置Cookie导致缓存失效
  6. linux 相关系列安装
  7. Mysql时间戳函数
  8. setsockopt的作用列表
  9. csv文件与DataTable互相导入处理
  10. leetcode problem 42 -- Trapping Rain Water
  11. hexdump——Linux系统的二进制文件查看工具
  12. Python之路,Day26-----暂无正在更新中
  13. ZooKeeper完全分布式安装和配置
  14. 去掉matlab图片空白边缘
  15. (一)Lua脚本语言入门
  16. JS跨域:1.解决方案之-SpringMVC拦截器
  17. docker部署jira破解版
  18. toLatin1 qt
  19. [Spark Core] Spark 使用第三方 Jar 包的方式
  20. ThreadLocal 详解

热门文章

  1. C#项目类型分三种,Dos(控制台),c/s(客户端与服务器),b/s(浏览器/服务器)
  2. Collections 索引
  3. 《SQL Server 2012 T-SQL基础》读书笔记 - 9.事务和并发
  4. 图像bayer格式介绍【转】
  5. python-笔记(操作excel)
  6. CentOS5.5配置Oracle监听 netca
  7. Struts2 Convention Plugin ( struts2 零配置 )
  8. 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_01 Collection集合_1_Collection集合概述
  9. 用Python处理字幕文件
  10. python中的包和文件夹的区别