Java中的文件File类
2017-11-01 21:04
323 查看
涉及到读写,除了键盘的输入,屏幕的输出显示,可能最多的就是关于文件的读写,很多场景中都会有关于文件读写的应用,比如数据的导出则涉及到写文件,还有图片的上传,则涉及到读取文件……当然,文件是存储在硬盘上的数据,可以为我们永久保存数据
下面来看看对于文件的操作:无非是创建文件,删除文件,判断文件,获取文件的某些属性以及如何获取文件的子文件及其子文件夹
文件的构造方法
注意:
1:创建File对象需要导包, import java.io.File
2:File对象没有无参数构造.创建对象需要传参.根据API文档提示,传入一个文件的字符串路径. String path=”c:/a.txt”;(a.txt 文件在c盘下已经存在)
3.File类对象既可以代表文件,也可以代表文件夹
4.new一个File类对象,并不代表会创建一个文件或者文件夹,不管指定的路径是否存在,都可以创建任意文件名的File实例,至于是否真实存在,可以调用exists方法进行判断,返回true表示存在,否则不存在。
创建文件的方法:
删除&判断
获取的方法:
其中getJavaFiles,getJavaFiles2,getJavaFiles3三个方法是实现了如下功能:列出指定目录中所有扩展名为.java的文件
下面来看看对于文件的操作:无非是创建文件,删除文件,判断文件,获取文件的某些属性以及如何获取文件的子文件及其子文件夹
文件的构造方法
import java.io.File; /** * Created by Dream on 2017/11/1. */ /* 构造File类对象: new File(String pathname):通过将给定路径来创建一个新File实例。 new File(String parent, String child):根据parent路径名字符串和child路径名创建一个新File实例。 parent是指上级目录的路径,完整的路径为parent+child. new File(File parent, String child):根据parent抽象路径名和child路径名创建一个新File实例。 parent是指上级目录的路径,完整的路径为parent.getPath()+child. 说明: 如果指定的路径不存在(没有这个文件或是文件夹),不会抛异常,这时file.exists()返回false。 */ public class CreateFileTest { public static void main(String[] args){ String pathName = "F:\\b.txt"; File file = new File(pathName); System.out.println("文件是否存在?"+file.exists()); String parent = "F:"; File file2 = new File(parent,"del.txt"); System.out.println("文件2是否存在?"+file2.exists()); File parentFile = new File(parent); File file3 = new File(parentFile,"judge.txt"); System.out.println("文件3是否存在?"+file3.exists()); } }
注意:
1:创建File对象需要导包, import java.io.File
2:File对象没有无参数构造.创建对象需要传参.根据API文档提示,传入一个文件的字符串路径. String path=”c:/a.txt”;(a.txt 文件在c盘下已经存在)
3.File类对象既可以代表文件,也可以代表文件夹
4.new一个File类对象,并不代表会创建一个文件或者文件夹,不管指定的路径是否存在,都可以创建任意文件名的File实例,至于是否真实存在,可以调用exists方法进行判断,返回true表示存在,否则不存在。
创建文件的方法:
package BasicObject.day19; import java.io.File; import java.io.IOException; /** * Created by Dream on 2017/11/1. */ /* 创建: createNewFile() 在指定位置创建一个空文件,成功就返回true,如果已存在就不创建然后返回false mkdir() 在指定位置创建目录,这只会创建最后一级目录,如果上级目录不存在就抛异常。 mkdirs() 在指定位置创建目录,这会创建路径中所有不存在的目录。 renameTo(File dest) 重命名文件或文件夹,也可以操作非空的文件夹,文件不同时相当于文件的剪切,剪切时候不能操作非空的文件夹。 移动/重命名成功则返回true,失败则返回false。 */ public class FileCreateTest { public static void main(String[] args)throws IOException{ File file = new File("F:\\b.txt"); System.out.println("创建文件成功?"+file.createNewFile()); File dir = new File("F:\\empty"); System.out.println("创建文件夹成功?"+dir.mkdir());//创建的是单级目录,只能是文件夹,不能创建文件 File dirs = new File("F:\\empty\\bbb\\cc\\dd"); System.out.println("创建文件夹目录成功吗?"+dirs.mkdirs()); //创建多级目录,只能创建文件夹,不能创建文件 /*同目录,实现的是重命名 System.out.println("文件重命名成功吗?"+file.renameTo(new File("F:\\a.txt"))); */ /*不同目录,则将该文件剪切到目标目录,文件也被重命名 System.out.println("文件重命名成功吗?改变目录:"+file.renameTo(new File("E:\\a.txt"))); */ /*同目录文件夹,即使为空文件夹,也可以成功重命名 System.out.println("空文件夹重命名成功吗?同目录:"+dir.renameTo(new File("F:\\emp"))); */ /*不同目录,文件夹是不可剪切的,无论文件是否为空,只能是操作同目录的!*/ System.out.println("文件夹重命名成功吗?同目录:"+dir.renameTo(new File("F:\\aaaaaaaaaaw"))); } }
删除&判断
package BasicObject.day19; import java.io.File; import java.io.IOException; /** * Created by Dream on 2017/11/1. */ /* 判断: exists() 文件或文件夹是否存在。 isFile() 是否是一个文件,如果不存在,则始终为false。 isDirectory() 是否是一个目录,如果不存在,则始终为false。 isHidden() 是否是一个隐藏的文件或是否是隐藏的目录。 isAbsolute() 测试此抽象路径名是否为绝对路径名。 */ public class DelJudgeTest { public static void main(String[] args)throws IOException{ /* 删除: delete() 删除文件或一个空文件夹,如果是文件夹且不为空,则不能删除,成功返回true,失败返回false。 deleteOnExit() 在虚拟机终止时,请求删除此抽象路径名表示的文件或目录,保证程序异常时创建的临时文件也可以被删除 File file = new File("F:\\del.txt"); System.out.println("文件是否创建成功?"+file.createNewFile()); System.out.println("文件是否删除成功?"+file.delete()); File file2 = new File("F:\\delOnExit.txt"); file.createNewFile(); file2.deleteOnExit();*/ File file = new File("F:\\judge.txt"); System.out.println("文件创建成功吗?"+file.createNewFile()); System.out.println("是否是一个文件?"+file.exists()); File dir = new File("F:\\judge"); System.out.println("文件夹是否创建成功?"+dir.mkdir()); System.out.println("是否是一个文件夹?"+dir.isDirectory()); System.out.println("是否是绝对路径名?"+dir.isAbsolute()); } }
获取的方法:
package BasicObject.day19; import java.io.File; import java.io.FilenameFilter; import java.text.SimpleDateFormat; import java.util.Date; /** * Created by Dream on 2017/11/1. */ /* 获取方法: getName() 获取文件或文件夹的名称,不包含上级路径。 getPath() 返回绝对路径,可以是相对路径,但是目录要指定 getAbsolutePath() 获取文件的绝对路径,与文件是否存在没关系 length() 获取文件的大小(字节数),如果文件不存在则返回0L,如果是文件夹也返回0L。 getParent() 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回null。 lastModified() 获取最后一次被修改的时间。 文件夹相关: staic File[] listRoots() 列出所有的根目录(Window中就是所有系统的盘符) list() 返回目录下的文件或者目录名,包含隐藏文件。对于文件这样操作会返回null。 list(FilenameFilter filter) 返回指定当前目录中符合过滤条件的子文件或子目录。对于文件这样操作会返回null。 listFiles() 返回目录下的文件或者目录对象(File类实例),包含隐藏文件。对于文件这样操作会返回null。 listFiles(FilenameFilter filter) 返回指定当前目录中符合过滤条件的子文件或子目录。对于文件这样操作会返回null。 */ class MyFilter implements FilenameFilter{ @Override public boolean accept(File dir, String name) { return name.endsWith(".java"); } } public class FilePrac { public static void main(String[] args){ /*File dir = new File("E:\\ForUs\\JavaPrac\\src"); getJavaFiles3(dir);*/ //new File()通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例,前提是指定路径必须存在文件或者文件夹 File file = new File("F:\\a.txt"); System.out.println("文件是否存在:"+file.exists()); System.out.println("文件路径:"+file.getPath()); System.out.println("文件绝对路径:"+file.getAbsolutePath()); System.out.println("文件长度:"+file.length()); System.out.println("文件父路径:"+file.getParent()); long last = file.lastModified(); Date date = new Date(last); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println("最有一次的修改时间:"+format.format(date)); System.out.println("列出所有跟目录:"); File[] files = File.listRoots(); for(File f : files){ System.out.println(f.getPath()); } } /*列出某个文件下的所有.java文件*/ public static void getJavaFiles(File dir){ File[] files = dir.listFiles(); //获取dir目录下的所有的子文件:包括文件和文件夹 for(File file : files){ String fileName = file.getName(); if(fileName.endsWith(".java") && file.isFile()){ System.out.println(fileName); } } } public static void getJavaFiles2(File dir){ String[] fileNames = dir.list(); //直接获取目录dir下的文件名 for(String fileName:fileNames){ if(fileName.endsWith(".java")){ System.out.println(fileName); } } } /*通过过滤器实现*/ public static void getJavaFiles3(File dir){ String[] fileNames = dir.list(new MyFilter()); for(String fileName:fileNames){ System.out.println(fileName); } } /*获得目录下的文件和文件夹*/ public static void getFiles(File dir){ File[] files = dir.listFiles(); List<File> fileList = new ArrayList<File>(); List<File> dirList = new ArrayList<File>(); for(int i=0;i<files.length;i++){ if(files[i].isFile()){ fileList.add(files[i]); } if(files[i].isDirectory()){ dirList.add(files[i]); } } System.out.println("子文件:"); for(File file:fileList){ System.out.println(file.getName()); } System.out.println("子文件夹:"); for(File file:dirList){ System.out.println(file.getName()); } } }
其中getJavaFiles,getJavaFiles2,getJavaFiles3三个方法是实现了如下功能:列出指定目录中所有扩展名为.java的文件
相关文章推荐
- 使用File类访问本地文件 java学习(二)
- Java中的File类 读写复制文件
- 黑马程序员——Java的File类的简单应用,文件的拷贝
- Java中File类创建文件
- JAVA基础学习之流的简述及演示案例、用缓冲区方法buffer读写文件、File类对象的使用、Serializable标记接口(6)
- Java File类文件管理及IO读写、复制操作
- java常用类解析五:IO系统File类及文件搜索工具类
- 黑马程序员--java基础:File类和文件字节IO流
- Java学习笔记——File类之文件管理和读写操作、下载图片
- 智渔课堂官方免费教程四十四 :Java流之字文件File类
- Java中文件File类的基本方法使用演示
- java文件file类之一
- Java中的文件和目录管理(上)---File类
- JAVA笔记11__File类/File类作业/字节输出流、输入流/字符输出流、输入流/文件复制/转换流
- 【Java】File类文件管理及IO读写、复制操作
- JAVA中利用File类遍历文件时空指针报错
- 黑马程序员_Java第20天知识总结_File类_Properties_打印流_文件切割合并
- I学霸官方免费教程四十四 :Java流之字文件File类
- Java中的 File类对文件 路径分割符不敏感! <发现>
- java常用类解析五:IO系统File类及文件搜索工具类