[01] File类
1、IO概念
- 如从键盘上读取数据,从本地或网络上的文件读取数据或写入数据
- 通过输入和输出操作可以从外界接收信息,或者把信息传递给外界
- 把数据读入到内存中,为输入Input,进行数据的read操作
- 把内存往外部设备写数据,称为输出Output,进行数据的write操作
2、File类
2.1 File类的构造方法
- public File(String pathname) 根据路径得到File对象
- File file = new File("C:\\demo\\a.txt");
- public File(String parent, String child) 根据一个目录和一个子文件/目录得到File对象
- File file = new File("C:\\demo", "a.txt");
- public File(File parent, String child) 根据一个父File对象和一个子文件/目录得到File对象
- File baseFile = new File("C:\\demo"); File file = new File(baseFile, "a.txt");
2.2 File类的常用方法
返回值 | 方法名 | 说明 |
boolean | exists() | 判断文件是否存在 |
boolean | isFile() | 判断是否为文件 |
boolean | isDirectory() | 判断是否为目录 |
String | getName() | 获取文件的名称 |
String | getAbsolutePath() | 获取文件的绝对路径 |
long | length() | 获取文件的大小长度(字节数) |
boolean | createNewFile() | 创建新文件,返回执行结果 |
boolean | delete() | 删除文件,返回执行结果 |
boolean | canWrite() | 是否可写 |
2.3 创建File
2.3.1 创建目录
返回值 | 方法名 | 说明 |
boolean | mkdir() | 根据File对象创建一个目录 |
boolean | mkdirs() | 根据File对象创建整个目录 |
- mkdir()创建目录,必须上一级目录存在。如例若D盘下abc目录存在,但xyz目录不存在,则不能成功创建hello目录
- mkdirs()创建File对象包含的整个目录,不论路径中某个目录实际是否存在,不存在则创建
2.3.2 创建文件 (New / Temp)
返回值 | 方法名 | 说明 |
boolean | createNewFile() | 创建新的文件 |
boolean | File.createTempFile() | 创建新的临时文件 |
- createNewFile() 根据路径创建空文件,当路径不存在,或文件已存在则创建失败(这意味着最好先调用exists方法判断)
- File.createTempFile() 根据路径创建临时文件,可指定文件名前后缀以及文件目录,若不指定目录则放在系统临时文件夹下
- createTempFile(String prefix, String suffix)
- createTempFile(String prefix, String suffix, File directory)
2.4 删除文件 (delete / deleteOnExit)
File file = new File("C:/test/test.txt");
if(file.exists()){
file.delete();
}
File file = new File("C:/test/test.txt");
if(file.exists()){
file.delete();
}
File file = File.createTempFile("tmp", null);
file.deleteOnExit();
File file = File.createTempFile("tmp", null);
file.deleteOnExit();
public static void main(String[] args) throws IOException {
File directory = new File("C:/test");
File temp = File.createTempFile("temp", null, directory);
temp.deleteOnExit();
System.out.println("deleteOnExit()已经执行!");
System.out.println("real end"); //此处打断点暂停,发现文件尚未删除
}
public static void main(String[] args) throws IOException {
File directory = new File("C:/test");
File temp = File.createTempFile("temp", null, directory);
temp.deleteOnExit();
System.out.println("deleteOnExit()已经执行!");
System.out.println("real end"); //此处打断点暂停,发现文件尚未删除
}
3、File类的遍历
3.1 遍历
返回值 | 方法名 | 说明 |
String[] | list() | 将目录下的子目录及文件的名字,返回到String数组中 |
File[] | listFiles() | 将目录下的子目录及文件的实例返回到File数组中 |
3.2 过滤
- list ( FilenameFilter filter )
- listFiles ( FileFilter filter )
- listFiles ( FilenameFilter filter )
- FilenameFilter 要求实现 boolean accept ( File dir, String name )
- dir:表示文件的当前目录
- name:表示当前目录的子目录或文件的名字
- FileFilter 要求实现 boolean accept ( File pathName)
- pathName:表示当前目录的子目录或文件的名字
public class MyFilenameFilter implements FilenameFilter {
public boolean accept(File dir, String name) {
if (name.endsWith(".java")) {
return true;
} else {
return false;
}
}
}
public class MyFilenameFilter implements FilenameFilter {
public boolean accept(File dir, String name) {
if (name.endsWith(".java")) {
return true;
} else {
return false;
}
}
}
public static void main(String[] args) throws IOException {
File directory = new File("C:/test");
String[] dirs = directory.list(new MyFilenameFilter());
for (String dir : dirs) {
System.out.println(dir);
}
}
public static void main(String[] args) throws IOException {
File directory = new File("C:/test");
String[] dirs = directory.list(new MyFilenameFilter());
for (String dir : dirs) {
System.out.println(dir);
}
}
public class MyFileFilter implements FileFilter{
public boolean accept(File pathname) {
if (pathname.isFile()) {
return true;
} else {
return false;
}
}
}
public class MyFileFilter implements FileFilter{
public boolean accept(File pathname) {
if (pathname.isFile()) {
return true;
} else {
return false;
}
}
}
public static void main(String[] args) throws IOException {
File directory = new File("C:/test");
File[] files = directory.listFiles(new MyFileFilter());
for (File file : files) {
System.out.println(file.getName());
}
}
public static void main(String[] args) throws IOException {
File directory = new File("C:/test");
File[] files = directory.listFiles(new MyFileFilter());
for (File file : files) {
System.out.println(file.getName());
}
}
4、总结
- File对象封装了一个文件/目录,不能操作文件内容
- 通过File对象可以创建或删除文件/目录,留意createTempFile和deleteOnExit
- File对象的遍历可以通过过滤器进行筛选
5、其他知识点延伸
5.1 FileCopyUtils.copy()
[01] File类的更多相关文章
- JavaIO(01)File类详解
File类 file类中的主要方法和变量 常量: 表示路径的分割符:(windows) 作用:根据java可移植性的特点,编写路径一定要符合本地操作系统要求的分割符: public static ...
- 01.使用File类读写文件
使用File类去读数据: 方法一:使用ReadAllBytes(); 方法 namespace _01.使用File类读写数据01 { class Program { static void Main ...
- 01 IO流(一)—— 流的概念、File类
1 流的概念理解(重要) 理解流的概念非常重要. 流,就是程序到数据源或目的地的一个通道. 我们把这个通道实例化得到一个具体的流,相当于一个数据传输工具,它可以在程序与资源之间进行数据交换. 换言之, ...
- 01 语言基础+高级:1-8 File类与IO流_day08【 File类、递归】
day08[File类.递归] 主要内容 File类 递归 教学目标 能够说出File对象的创建方式 能够说出File类获取名称的方法名称 能够说出File类获取绝对路径的方法名称 能够说出File类 ...
- 01背包(类) UVA 10564 Paths through the Hourglass
题目传送门 /* 01背包(类):dp[i][j][k] 表示从(i, j)出发的和为k的方案数,那么cnt = sum (dp[1][i][s]) 状态转移方程:dp[i][j][k] = dp[i ...
- Java IO_001.File类--文件或文件夹相关操作
Java IO之File对象常用操作 File类:用于文件或文件夹或网址相关联的操作.可以关联或不关联文件(即关联不存在的文件).构造函数有: public File(String pathname) ...
- File类常用方法和枚举
新建一个file对象: File f = new File("F:\\01.JAVA基础300集\\05_常用类\\122.File类的使用.mp4"); (文件路径也可以用&qu ...
- Java 基础(三)| IO流之使用 File 类的正确姿势
为跳槽面试做准备,今天开始进入 Java 基础的复习.希望基础不好的同学看完这篇文章,能掌握泛型,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆. 一.什么是 File 类? java ...
- File类的特点?如何创建File类对象?Java中如何操作文件内容,什么是Io流Io流如何读取和写入文件?字节缓冲流使用原则?
重难点提示 学习目标 1.能够了解File类的特点(存在的意义,构造方法,常见方法) 2.能够了解什么是IO流以及分类(IO流的概述以及分类) 3.能够掌握字节输出流的使用(继承体系结构介绍以及常见的 ...
随机推荐
- 读Zepto源码之Ajax模块
Ajax 模块也是经常会用到的模块,Ajax 模块中包含了 jsonp 的现实,和 XMLHttpRequest 的封装. 读 Zepto 源码系列文章已经放到了github上,欢迎star: rea ...
- MySQl数据库常用的DOS命令
MySQl数据库常用的DOS命令.. 这是第一部分.. 数据库的连接信息:jdbc:mysql://localhost:3306/shxtcom.mysql.jdbc.Driver /*jdbc:sq ...
- Spring同mybatis整合讲义(事物)
1.mybatis的作用. 它是一个数据持久化的解决方案,它是一个ORM的框架. 2.Spring的作用? 备注:将本地jar包拷贝至本地的maven仓库里:oracle的jar包需自己发布到mave ...
- javasript校验字符串【正则和其他函数】
/**javasript校验输入框值只能为数字中文英文和下划线**/function isRegex(s){ var reg=/^[a-zA-Z0-9_\u4e00-\u9fa5]+$/; if (! ...
- prop解决一个checkbox选中后再次选中失效的问题
//问题点 初始状态复选框没有全选, 点击全选按钮调用checkAll方法, 实现了全选, 然后点击全不选按钮, 实现了全不选, 然后再次点击全选按钮, 结果却木有全选, 再反复点击木有任何反应. d ...
- snowflake主键生成策略
1.snowflake简介 在分布式系统中,我们需要各种各样的ID,既然是ID那么必然是要保证全局唯一,除此之外,不同当业务还需要不同的特性,比如像并发巨大的业务要求ID生成效率高,吞吐大:比如某些银 ...
- 富文本编辑器UEditor的配置使用方法
将下载的富文本编辑器的文件解压后放到 webcontent 下 如果 文件中的jsp文件夹下的controller.java文件报错的话 就将jsp下的lib文件夹中的文件都复制到 web-i ...
- poj 1014多重背包
题意:给出价值为1,2,3,4,5,6的6种物品数量,问是否能将物品分成两份,使两份的总价值相等. 思路:求出总价值除二,做多重背包,需要二进制优化. 代码: #include<iostream ...
- Linux运维:安装CentOS7.2-图解
矮哥linux运维群: 93324526 笔者QQ:578843228 此篇博文针对最小化安装,和只有图解.有不懂地方,欢迎加群询问.
- 文件系统的几种类型:ext3, swap, RAID, LVM
分类: 架构设计与优化 1. ext3 在异常断电或系统崩溃(不洁关机, unclean system shutdown ).每个已挂载ext2文件系统计算机必须使用e2fsck程序来检查其一致性 ...