一. IO流简介
JAVA的API中,IO包是比较重要且在项目中使用频繁的部分。所谓IO就是input和ouput,也就是输入和输出。今天千锋老师就带你学习java中的IO包。
1.IO中关于文件的定义
前面我们已经学过数组和集合,但是这些数据存储的介质存在一下问题,比如每次运行程序后,我们对数组和集合的操作就会重新初始化,并不能永久保存。我们怎么才能把数据持久化保存呢?IO流中的文件操作就可以实现这个目的!
文件的输入输出是io包的核心板块。那么什么是文件呢?
在JAVA中,文件是任何可以存储相关记录的数据集合,用来进行持久化数据,比如 磁盘、光盘、硬盘、文档(doc, txt ,ppt)、文件夹(目录)、系统文件、压缩文件等等。
2. java.io.File
在JAVA中,用来操作文件的API是File类,该类可以用来操作文件或者目录(即文件夹),可以根据File的构造方法参数的路径来决定。
3. File的创建
当创建File的时候,最常用的构造方法是传入文件或目录的路径。
4. File的方法
File的方法有很多,有些方法可以只使用在文件,有些方法只使用在目录,使用时注意区分。
二. 代码案例
接下来老师给大家设计几个案例,演示IO流中File的创建过程。
1.File文件的创建
package com.qf.io;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestFile {
public static void main(String[] args) throws IOException {
//创建文件对象
File f = new File("d:\\ys.txt");
//不存在
if(!f.exists()) {
//新建
f.createNewFile();
}else {
//文件的长度(字节数)
System.out.println(f.length());
//文件名
System.out.println(f.getName());
//文件路径
System.out.println(f.getPath());
//获得最后修改时间
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//最后修改时间,转化为日期,格式化
System.out.println(sf.format(new Date(f.lastModified())));
}
//直接删除文件
//f.delete();
}
}
2. 目录的创建
我们还可以使用File里的方法操作目录,案例演示如下:
package com.qf.io;
import java.io.File;
import java.io.FileFilter;
public class TestFile2 {
public static void main(String[] args) {
//创建File操作目录
File f2 = new File("d:\\a");
//创建文件夹
f2.mkdirs();
//列举文件夹内容
String[] names = f2.list();
//s使用匿名内部类筛选只读文件
File[] files = f2.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
// TODO Auto-generated method stub
//return pathname.canRead() && !pathname.canWrite();
return pathname.getName().contains("ys");
}
});
//使用jdk8新特性Lambda
File[] files2 = f2.listFiles((f)-> f.canRead() && !f.canWrite());
//遍历
for (File f : files2) {
System.out.println(f);
}
}
}
3. 查找目录中的子目录
另外我们还有一种需求,比如给定一个目录,查找该目录下的子目录都有哪些。我们知道目录里可能还有目录,可以说是”子子孙孙无穷匮也“,我们可以使用递归的方式实现,代码如下:
public static void all(File dir) {
//列举dir内容
File[] files = dir.listFiles();
for (File file : files) {
if(file.isFile()) {
System.out.println("文件:" + file.getName());
}else {
//递归
all(file);
}
}
System.out.println("目录:" + dir.getName());
}
现在你知道利用Java怎么创建文件及文件夹了吗?如果你还有其他问题,可以咨询客服留言哦。
相关文章
07.13抢座
06.15抢座
06.29抢座
06.15抢座
06.29抢座
06.29抢座
06.15抢座
06.29抢座
06.29抢座
06.15抢座
了解千锋动态
关注千锋教育服务号
扫一扫快速进入
千锋移动端页面
扫码匿名提建议
直达CEO信箱