JAVA之旅(二十八)——File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤
2016-07-10 20:58
996 查看
JAVA之旅(二十八)——File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤
我们可以继续了,今天说下File一.File概述
文件的操作是非常重要的,我们先来看下他的基本概念用于将文件或者文件夹封装成对象
方便对文件和文件夹的操作
File对象可以作为参数传递给流的构造函数
我们写个小例子先
package com.lgl.hellojava; import java.io.File; public class HelloJJAVA { public static void main(String[] args) { // 创建File对象,不存在也没事 File file = new File("a.txt"); //目录 文件名 File file2 = new File("F:\\isblog\\Demo","a.txt"); //封装什么就打印什么 System.out.println(file); } }
其实就是一个类的使用
二.创建删除
是文件肯定有操作方法1.创建
2.删除
3.判断
4.获取信息
1.创建
忽然如此,我们用实际的例子来说明岂不妙哉?package com.lgl.hellojava; import java.io.File; import java.io.IOException; public class HelloJJAVA { public static void main(String[] args) { // 创建File对象 File file = new File("a.txt"); try { //创建 file.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
在指定的位置创建文件,如果文件已经存在,就不创建,并且返回false,和输出流不一样,输出流对象已建立文件,文件就已经存在,会覆盖
2.删除
删除我就不说了,直接这样file.delete();
他还有一个方法比较好玩
file.deleteOnExit();
在程序退出之后删除文件
三.判断文件存在
判断文件是否存在package com.lgl.hellojava; import java.io.File; import java.io.IOException; public class HelloJJAVA { public static void main(String[] args) { // 创建File对象 File file = new File("a.txt"); // 判断是否存在,不存在则创建 if (!file.exists()) { try { file.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
这样我们就可以去判断文件是否存在且不存在就去创建文件了。
四.创建文件夹
我们继续来看怎么去创建文件夹,其实也很简单package com.lgl.hellojava; import java.io.File; public class HelloJJAVA { public static void main(String[] args) { // 创建File对象 File file = new File("liuguilin"); file.mkdir(); } }
OK,这样的话,就创建了,这里注意mkdir只能创建一级目录,而mkdirs可以创建多级文件夹目录
五.判断是否为文件/文件夹
有时候还是需要的package com.lgl.hellojava; import java.io.File; public class HelloJJAVA { public static void main(String[] args) { File file = new File("liuguilin"); //是否为文件 System.out.println(file.isFile()); //是否为文件夹 System.out.println(file.isDirectory()); } }
他返回的是boolean值来确定是否存在,但是这里也要记住一电,就是一定要确定这个文件是否存在,所以我们的流程可以这样写
package com.lgl.hellojava; import java.io.File; import java.io.IOException; public class HelloJJAVA { public static void main(String[] args) { File file = new File("liuguilin"); // 判断文件是否存在 if (file.exists()) { // 再去判断文件还是文件夹 if (file.isFile()) { System.out.println("文件"); } else if (file.isDirectory()) { System.out.println("文件夹"); } } else { try { file.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
这样逻辑是比较清晰的
六.获取信息
获取的话,我们是怎么去获取信息的呢?毫无疑问,是get,比如getNmae之类的,我们用代码里的注释来说明是比较好的package com.lgl.hellojava; import java.io.File; public class HelloJJAVA { public static void main(String[] args) { File file = new File("liuguilin.txt"); File file2 = new File("haha.txt"); // 项目路径下+文件名 System.out.println("路径:" + file.getPath()); // 全路径 System.out.println("绝对路径:" + file.getAbsolutePath()); // 最后一次修改时间 System.out.println("时间:" + file.lastModified()); // 绝对路径中的文件父目录,如果是相对路径,返回的为空 System.out.println("父目录:" + file.getParent()); // 把内容拷贝到另一个文本中并且删除自身 System.out.println(file.renameTo(file2)); } }
运行的结果
七.文件列表
列出可用的系统目录,我们看代码package com.lgl.hellojava; import java.io.File; public class HelloJJAVA { public static void main(String[] args) { File[] listRoots = File.listRoots(); for (File f : listRoots) { // 打印磁盘目录 System.out.println(f); } } }
这样我们就可以得到有效盘符了
我们可以进行改进,我们打印C盘下的所有文件
package com.lgl.hellojava; import java.io.File; public class HelloJJAVA { public static void main(String[] args) { //必须封装了一个目录,该目录还必须存在 File f = new File("c:\\"); String[] list = f.list(); for (String fi : list) { System.out.println(fi); } } }
得到的肯定就是所有文件的列表咯
八.文件过滤
我们做文件夹的时候经常会用到的一个小知识点,就是过滤文件package com.lgl.hellojava; import java.io.File; import java.io.FilenameFilter; public class HelloJJAVA { public static void main(String[] args) { File f = new File("c:\\"); String[] list = f.list(new FilenameFilter() { // 过滤 @Override public boolean accept(File dir, String name) { // 只返回txt后缀的文件 return name.endsWith(".txt"); } }); for (String fi : list) { // 过滤 System.out.println(fi); } } }
需要监听,然后过滤,当然,他还有一些其他的子类listFiles就不讲了,详细的翻阅下API
我们本篇博文就先到这里
有兴趣的可以加群:555974449
相关文章推荐
- Hibernate及Spring的框架简述
- java多态可扩展性缺陷
- java 删除目录
- java 解压文件
- JAVA 复制文件夹(含子目录)
- java 文件下载
- 新换的电脑,java 配置环境备忘下
- Java 运算符的总结
- JAVA中switch是否支持String类型参数?
- 接口测试完整解决方案(持续更新)
- Java-PipedOutputStream和PipedInputStream类
- java学习问题1
- Java线程(学习整理)--4---一个简单的生产者、消费者模型
- Java 数据类型的转换
- Java线程(学习整理)--3--简单的死锁例子
- Java实现堆排序算法
- Spring Assert断言工具类
- java生成缩略图
- Spring (一)
- Java线程(学习整理)--2---加入另一个线程join