IO(二) File类基本说明
来源:互联网 发布:数据统计工作要求 编辑:程序博客网 时间:2024/06/12 23:19
流对象只能读,写文件或文件夹对象。 获取,更改文件属性需用到File类对象。FIle类中封装了对文件的新增, 修改,删除, 查询信息等方法。
1 FIle类基本方法
(1)创建
boolean createNewFile():如果该文件不存在,会创建,如果已存在,则不创建。不会像输出流一样会覆盖。
boolean mkdir();
boolean mkdirs();
(2)删除。
boolean delete();
void deleteOnExit();
(3)获取:
String getAbsolutePath();
String getPath();
String getParent(); //当file对象为文件, 返回的是文件所在目录。如果是文件夹,返回Null;
String getName();
long length();
long lastModified();
(4)判断:
boolean exists();
boolean isFile();
boolean isDirectory();
2 样例递归展示文件夹里的所有文件信息
import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOException;public class FileDemo {public static void main(String[] args) throws IOException {File file = new File("G:\\easy_ui\\jquery-easyui-1.3.4\\");FileWriter fWriter= new FileWriter("G:\\files.txt");BufferedWriter bWriter = new BufferedWriter(fWriter);listFile(file,0,bWriter);bWriter.close();}private static void listFile(File file,int level,BufferedWriter bWriter) throws IOException{bWriter.write(getSuffix(level)+file.getName()+"\r\n");level++;if(file.isDirectory()){//文件夹, 列出文件File[] files = file.listFiles();for(int i=0,len=files.length;i<len;i++){listFile(files[i],level,bWriter);}}}private static String getSuffix(int level){String resString ="";for(int i=0;i<level;i++)resString+="|--";return resString;}}
运行结果(files.txt部分内容) :
|--api
|--|--accordion.html
|--|--api
|--|--|--Base
|--|--|--|--Documentation.html
|--|--|--|--draggable.html
|--|--|--|--droppable.html
|--|--|--|--easyloader.html
|--|--|--|--pagination.html
|--|--|--|--parser.html
|--|--|--|--progressbar.html
|--|--|--|--resizable.html
|--|--|--|--searchbox.html
|--|--|--|--tooltip.html
|--|--|--|--~$aggable.html
3 递归删除文件夹
java中没有内置递归删除的方法, 当文件夹里含文件,则无法删除该文件夹。 因此,必须先删除文件夹中的所有元素, 才能删除文件夹。
import java.io.File;public class FileRemoveDir {public static void main(String[] args) {String dirString = "G:\\easy_ui\\jquery-easyui-1.3.4";File dir = new File(dirString);removeDir(dir);System.out.println("删除成功,删除目录:"+dirString);}private static void removeDir(File dir){if(dir.isDirectory()){File[] files = dir.listFiles();for(int i=0,len=files.length;i<len;i++){removeDir(files[i]);}}dir.delete();}}
运行结果:硬盘上已删除该文件夹,打印台输出内容,
删除成功,删除目录:G:\easy_ui\jquery-easyui-1.3.4
3 过滤文件
File对象可以通过listFiles(FilenameFilter filter) 获取文件夹下的元素,并通过过滤器进行过滤。
自定义的过滤器对象必须实现FilenameFilter接口,并实现Boolean
accept(File dir,String name)
方法。
案例 过滤删选文件夹G:\easy_ui\jquery-easyui-1.3.4 下.html的文件
import java.io.File;import java.io.FilenameFilter;public class FileFilterDemo {public static void main(String[] args) {File file = new File("G:\\easy_ui\\jquery-easyui-1.3.4");String[] fileNames = file.list(new MyFilter(".html"));for(String fileName : fileNames){System.out.println(fileName);}}}class MyFilter implements FilenameFilter{private String suffix;public MyFilter(String suffix){this.suffix=suffix;}public boolean accept(File dir, String name) {if(name.endsWith(suffix))return true;return false;}}
运行结果:
index-api.html
index-demo.html
- IO(二) File类基本说明
- File类IO操作(二)
- IO流(二)File类
- JAVA【IO二】file类
- IO容器与文件操作(二)File类的基本操作
- JAVA IO(二)File类详解
- IO学习(二)File类
- 【JavaSE笔记】IO(二)File类
- (总结)IO之File类<二>
- IO基础之File类的简单说明
- [Java 12 IO] File 类 的几个基本操作
- file io流(二)
- File.io读取文件(二)
- java.io File操作,流简单说明
- java(I/O流二)java.io.File类
- java IO的File类常用方法总结二
- File类java.io.File
- IO流与File对象基本操作
- C语言写CGI程序【转】
- (4.6.12.5)说说Android应用的persistent属性
- 设计模式总结
- 使用SharedPreferences保存和读取数据
- URIEncoding和useBodyEncodingForURI区别
- IO(二) File类基本说明
- RxJava的副作用
- 关于Android依赖注入框架ButterKnife和Dagger的简单比较
- 根文件系统移植之tslib移植记录
- js犀牛书
- Android Cordova 插件开发之创建项目
- 开源任务管理平台TaskManager介绍
- Java定时任务详解
- 怎么成为一个架构师