黑马程序员_java文件系统
来源:互联网 发布:c语言基本算法 编辑:程序博客网 时间:2024/05/22 11:51
一、File类
- java.io.file类用于表示文件或者目录,即我们可以通过File类操作硬盘上的文件或者目录;FIle类智能用于操作文件或目录的信息(大小、名称等),不能用于访问文件内容(目录);
- 常用API方法
- File(String filename):指定文件名的构造器
- long length():文件长度
- String lastModified();
- String getName();
- String getPath();
- boolean exists();
- boolean dir.isFile();
- boolean dir.isDirectory();
- boolean mkdir();
- File[] listFile();
public class FileDemo { public static void main(String[] args) { //创建File对象,此时不会在硬盘上创建以下文件或文件夹的 //可以将已有的或不存在的文件或文件夹封装成File对象 File f1 = new File("a.txt"); //在c:\abc目录下创建1.txt文件 File f2 = new File("c:\\abc","1.txt"); //c:\abc目录下创建1.txt文件 File d = new File("c:\\abc"); File f3 = new File(d,"1.txt"); System.out.println("f1:"+f1); System.out.println("f2:"+f2); System.out.println("f3:"+f3); } }4.常用方法实例
import java.io.File;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Arrays;import java.util.Date;public class FileDemo {public static void main(String[] args) throws Exception { File dir = new File("."); //1.显示当前路径 System.out.println(dir.getCanonicalPath()); //2.创建一个demo文件夹 File demo = new File(dir,"demo");//创建了一个demo对象 if(!demo.exists()){ demo.mkdir(); } //3.在demo文件夹下创建txt文件 File test = new File(demo,"test1.txt"); if(!test.exists()){//在指定目录下创建文件,如果文件已经存在,则不创建,返回false;//和输出流不一样,输出流一建立就会创建对象。如果已存在,则会覆盖。 test.createNewFile();//touch } //4.查看目录内容 File[] fileList = demo.listFiles(); System.out.println(Arrays.toString(fileList)); //5.显示test的绝对路径名、相对路径名 System.out.println(test.getAbsolutePath());//绝对 System.out.println(test.getCanonicalPath());//相对路径 //6.文件长度、上次修改时间 System.out.println(test.length()); //日期格式转换 Date d = new Date(test.lastModified()); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String time = df.format(d); System.out.println(time); test.delete(); demo.delete();}}
输出结果
D:\servyou\20150304
[.\demo\test1.txt]
D:\servyou\20150304\.\demo\test1.txt
D:\servyou\20150304\demo\test1.txt
0
2015-03-12 14:57:46
二、过滤器
1.String[] list()方法:返回字符串数组,返回指定路径下的所有文件和文件夹;
例子:
public class FilterDemo {public static void main(String[] args) { //创建一个文件对象 File f = new File("c:\\"); //将指定目录下的文件或者文件夹的名称存储到字符串数组中,包含隐藏文件。 String[] names = f.list(); System.out.println(names); System.out.println("C盘目录下的所有文件和文件夹是:"); for(String name:names){ System.out.println(“”name); }}}
输出结果:
C盘目录下的所有文件和文件夹是:
[Ljava.lang.String;@4f1d0d
01create_data_lib.pdc
1
1.xml
1.xml.bak
Program Files
等等不再列出
2.上述例子中包含c盘下的隐藏文件,那么如何过滤出这些隐藏文件,并把它们输出出来呢?
public class FilterDemo {public static void main(String[] args) { //创建文件对象 File f = new File("c:\\"); File[] files = f.listFiles(new FilterByHidden()); for(File file1 : files){ System.out.println(file1); }}}class FilterByHidden implements FileFilter { @Override public boolean accept(File pathname) { return pathname.isHidden(); }}
过滤器的原理:
1,首先获取到该目录所有内容,用list()
2. 对这些内容进行遍历在遍历中加入条件。条件:accept(pathname);
3. 凡是符合条件,accept 方法返回true,就将这些符合条件的进行存储
4. 将存储的内容返回,这样就得到了过滤后的内容
关于过滤器再举几个例子:
import java.io.File;import java.io.FileFilter;import java.io.FilenameFilter;public class FilterDemo {public static void main(String[] args) { //创建文件对象 File f = new File("c:\\"); //示例1:找出C盘下隐藏的文件或文件夹 File[] files1 = f.listFiles(new FilterByHidden()); // 示例2:找出C盘下拓展名为.xml的文件或文件夹 File[] files2 = f.listFiles(new FilterByJava()); // 示例3:找出C盘下拓展名为.xml的文件或文件夹 File[] files3 = f.listFiles(new FilterBySuffix(".txt")); for(File file1 : files1){ System.out.println(file1); } for(File file1 : files2){ System.out.println(file1); } for(File file1 : files3){ System.out.println(file1); }}}//查找隐藏文件/文件夹的过滤器class FilterByHidden implements FileFilter { @Override public boolean accept(File pathname) { return pathname.isHidden(); }}//查找.java文件的过滤器class FilterByJava implements FilenameFilter{ @Override public boolean accept(File dir , String name){ return name.endsWith(".xml");}}//查找任意拓展名的过滤器class FilterBySuffix implements FilenameFilter{ private String suffix; public FilterBySuffix(String suffix){ super(); this.suffix = suffix;}@Override public boolean accept(File dir , String name){ return name.endsWith(suffix);}}
0 0
- 黑马程序员_java文件系统
- 黑马程序员_java文件系统--Properties
- 黑马程序员_Java基础知识
- 黑马程序员_JAVA学习心得
- 黑马程序员_java多线程
- 黑马程序员_Java Applet
- 黑马程序员_Java高新技术
- 黑马程序员_Java必修课
- 黑马程序员_java初步
- 黑马程序员_Java枚举
- 黑马程序员_Java泛型
- 黑马程序员_JAVA多线程
- 黑马程序员_java反射
- 黑马程序员_Java注解
- 黑马程序员_java代理
- 黑马程序员_java集合
- 黑马程序员_java多线程
- 黑马程序员_java基础知识
- iOS开发UI篇—控制器的View的创建
- Java实现双向链表
- xml中<![CDATA[发如雪]]>Android的解析
- android开发笔记
- "_inflateEnd", referenced from "_inflateInit_"等。这时需要在工程中加入libz.dlib 文件
- 黑马程序员_java文件系统
- 设计模式学习笔记---观察者模式Observer pattern(Java版)
- m个数取n个进行组合
- CSS命名规范
- Lq_序列求和
- Yii2 布局模板
- spring中@param和mybatis中@param使用区别
- NYOJ 题目710 外星人的供给站(贪心区间覆盖)
- 将一个十进制数n转换为k进制数