数据希望永久存储,使用文件的形式存储。
1、围绕文件的操作 2、读写数据。
File类 IO流
File类、IO流 概述
1、File类概述
File类的对象代表操作系统的文件(文件、文件夹),File类在java.io.File包下
File类提供了诸如:创建文件对象代表文件,获取文件信息(大小、修改时间)、删除文件、创建文件(文件夹)等功能
2、IO流 概述
- 用来读写数据的。
关于File、IO流,同学们需要学会什么
File类
一、File类创建对象
绝对路径和相对路径
- 绝对路径:从盘符开始
File file1 = new File(“D:\\itheima\\a.txt”);
- 相对路径:不带盘符,默认直接到当前工程下的目录寻找文件。
File file3 = new File(“模块名\\a.txt”);
File类的作用
- 创建对象定位文件,可以删除、获取文件信息等。但是不能读写文件内容。
二、常用方法
1、File类的判断文件类型、获取文件信息功能
方法演示:
package com.jw;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
public class FileTest {
/**
* public File(String pathname) * public File(String parent,String child) * public File(File parent,String child) * */ public static void main(String[] args) {
File file = new File("E:\\JAVA\\File\\a.txt");
File file3 = new File("E:\\JAVA\\File\\b.txt");
File file4 = new File("File\\b.txt");
File file1 = new File("E:\\JAVA\\File", "a.txt");
File parent = new File("E:\\JAVA\\File");
File file2 = new File(parent,"a.txt");
System.out.println(file.isDirectory());// 是不是一个目录 false System.out.println(parent.isDirectory());// true
System.out.println(file.isFile());// 是不是一个文件
System.out.println(file3.exists());// 存不存在
System.out.println(file3.getAbsolutePath());// 返回文件的绝对路径
System.out.println(file4.getPath());// 返回定义文件时使用的路径
System.out.println(file4.getAbsolutePath());//
System.out.println(parent.getName());// 返回文件的名称,带后缀
System.out.println(file.lastModified());// 返回最后的修改日期的毫秒值
long time = file.lastModified();
Date d = new Date(time);
System.out.println("该文件最后的修改时间为:"+new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss").format(d));
}
}
2、创建文件、删除文件功能
File类创建文件的功能
File类删除文件的功能
注意
delete方法默认只能删除文件和空文件夹,delete方法直接删除不走回收站
方法演示:
package com.jw;
import java.io.File;
import java.io.IOException;
public class FileTest2 {
public static void main(String[] args) throws IOException, IOException {
File file = new File("E:\\JAVA\\File\\b.txt");
File file1 = new File("E:\\JAVA\\File\\a.txt");
System.out.println(file.createNewFile());// 创建一个新的空的文件
System.out.println(file1.createNewFile());
File file2 = new File("E:\\JAVA\\a\\b");
File file3 = new File("b.txt");
file2.mkdir();// 创建单级目录
file2.mkdirs();// 创建多级目录
file2.delete();// 删除由此抽象路径名表示的文件或空文件夹
System.out.println(file3.createNewFile());// 相对路径创建文件
}
}
3、遍历文件夹
File类的遍历功能
listFiles方法注意事项:
- 当文件不存在时或者代表文件时,返回null
- 当文件对象代表一个空文件夹时,返回一个长度为0的数组
- 当文件对象是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回
- 当文件对象是一个有隐藏文件的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏文件
- 当没有权限访问该文件夹时,返回null
方法演示:
- 遍历文件夹打印所有文件名
package com.jw;
import java.io.File;
// 遍历文件夹打印所有文件名
public class FileTest3 {
public static void main(String[] args) {
File file = new File("E:\\JAVA\\common\\eclipse");
String[] files = file.list();
for (String s:files){
System.out.println(s);
}
}
}
- 遍历文件夹,打印有关类型的文件数量
package com.jw;
import java.io.File;
public class FileTest4 {
public static void main(String[] args) {
File file = new File("E:\\JAVA\\common\\eclipse");
File[] files = file.listFiles();
int doc = 0;
int txt = 0;
int jpg = 0;
int dir = 0;
for (File f:files){
if (f.isDirectory()){
dir++;
}else {
String name = f.getName();
if (name.endsWith(".doc")){
doc++;
}else if (name.endsWith(".txt")){
txt++;
}else {
jpg++;
}
}
}
System.out.println("文件夹:"+dir+",txt:"+txt+",doc:"+doc+",jpg:"+jpg);
}
}
本文含有隐藏内容,请 开通VIP 后查看