- 概念:代表物理盘符中的一个文件或者文件夹。
- 方法:
- createNewFile()//创建一个新文件
- mkdir()//创建一个新目录
- delete()//删除文件或空目录
- exists()//判断File对象所对象所代表的对象是否存在
- getAbsolutePath()//获取文件的绝对路径
- getName ()//取得名字
- getParent()//获取文件/目录所在的目录
- isDirectory()//是否是目录
- isFile()//是否是文件
- length()//获得文件的长度
- listFiles()//列出目录中的所有内容
- renameTo()//修改文件名为
import java.io.File;
import java.io.IOException;
import java.util.Date;
public class Demo01 {
public static void main(String[] args) throws Exception{
//separator();
fileOpe();
}
//分隔符
public static void separator(){
System.out.println("路径分隔符:"+ File.pathSeparator);
System.out.println("名称分隔符:"+File.separator);
}
//文件操作
public static void fileOpe() throws IOException, InterruptedException {
//创建文件
File file = new File("d:\file.txt");
if (!file.exists()) {//存在该文件返回true,否则返回false。
boolean newFile = file.createNewFile();
System.out.println("创建文件结果为:" + newFile);
}
//删除文件
//直接删除
// System.out.println("删除结果为:"+file.delete());
//使用jvm退出时删除
// file.deleteonExit();
// Thread.sleep(5000);
//获取文件信息
System.out.println("获取绝对路径"+file.getAbsolutePath());
System.out.println("获取路径"+file.getPath());
System.out.println("获取名称"+file.getName());
System.out.println("获取父目录"+file.getParent());
System.out.println("获取文件长度"+file.length());
System.out.println("获取文件创建时间"+new Date(file.lastModified()).toLocaleString());
//判断
System.out.println("判断是否可写:"+file.canWrite());
System.out.println("判断是否是文件:"+file.isFile());
System.out.println("判断是否隐藏:"+file.isHidden());
}
}
文件夹操作
import java.io.File;
import java.io.IOException;
import java.util.Date;
public class Demo01 {
public static void main(String[] args) throws Exception{
//separator();
//fileOpe();
directoryOpe();
}
//分隔符
public static void separator(){
System.out.println("路径分隔符:"+ File.pathSeparator);
System.out.println("名称分隔符:"+File.separator);
}
//文件操作
public static void fileOpe() throws IOException, InterruptedException {
//创建文件
File file = new File("d:\file.txt");
if (!file.exists()) {//存在该文件返回true,否则返回false。
boolean newFile = file.createNewFile();
System.out.println("创建文件结果为:" + newFile);
}
//删除文件
//直接删除
// System.out.println("删除结果为:"+file.delete());
//使用jvm退出时删除
// file.deleteonExit();
// Thread.sleep(5000);
//获取文件信息
System.out.println("获取绝对路径"+file.getAbsolutePath());
System.out.println("获取路径"+file.getPath());
System.out.println("获取名称"+file.getName());
System.out.println("获取父目录"+file.getParent());
System.out.println("获取文件长度"+file.length());
System.out.println("获取文件创建时间"+new Date(file.lastModified()).toLocaleString());
//判断
System.out.println("判断是否可写:"+file.canWrite());
System.out.println("判断是否是文件:"+file.isFile());
System.out.println("判断是否隐藏:"+file.isHidden());
}
public static void directoryOpe() throws InterruptedException {
//创建文件夹
File dir = new File("d:\aaa\bbb\ccc");
System.out.println(dir.toString());
if (!dir.exists()){
//System.out.println("创建结果:"+dir.mkdir());//只能创建单级文件夹
System.out.println("创建结果:"+dir.mkdirs());//可以创建多级文件夹
}
//删除文件夹
//直接删除
// System.out.println("删除结果:"+dir.delete());//只能删除最低级目录,且必须是空目录。
//使用JVM删除
// dir.deleteonExit();
// Thread.sleep(5000);
//获取文件夹信息
System.out.println("获取文件夹绝对路径"+dir.getAbsolutePath());
System.out.println("获取文件夹路径"+dir.getPath());
System.out.println("获取文件夹名称"+ dir.getName());
System.out.println("获取文件夹父目录"+ dir.getParent());
System.out.println("获取文件夹创建时间"+new Date(dir.lastModified()).toLocaleString());
//判断
System.out.println("判断是否为文件夹"+dir.isDirectory());
System.out.println("判断是否隐藏"+dir.isHidden());
//遍历文件夹
File dir2 = new File("D:\D\w3school\html");
for (String s : dir2.list()) {
System.out.println(s);
}
}
}
递归遍历删除文件夹案例
import java.io.File;
public class ListDemo {
public static void main(String[] args) {
// listDir(new File("d:\aaa"));
deleteDir(new File("d:\aaa"));
}
//递归遍历文件夹
public static void listDir(File dir){
File[] files = dir.listFiles();
if (files!=null&&files.length>0){
for (File file : files) {
if (file.isDirectory()){
listDir(file);//递归调用
}else {
System.out.println(file.getAbsolutePath());
}
}
}
}
//递归删除文件夹
public static void deleteDir(File dir){
File[] files = dir.listFiles();
if(files!=null&&files.length>0){
for (File file : files) {
if(file.isDirectory())
deleteDir(file);
else System.out.println("删除:"+file.getAbsolutePath()+file.delete());
}
}
System.out.println("删除:"+dir.getAbsolutePath()+dir.delete());
}
}
补充: Properties
- Properties:属性集合
- 特点
- 1 存储属性名和属性值
- 2 属性名和属性值都是字符串类型
- 3 没有泛型
- 4 和流有关
import java.io.FileInputStream;
import java.util.Map;
import java.util.Properties;
public class Demo02 {
public static void main(String[] args) throws Exception {
//创建集合
Properties properties = new Properties();
//添加元素
properties.setProperty("name","张三");
properties.setProperty("age","18");
System.out.println(properties.toString());
//删除元素
// properties.remove("name");
// properties.clear();
// System.out.println(properties.toString());
//遍历
//keySet
System.out.println("————————————————keySet————————————————————————");
for (Object o : properties.keySet()) {
System.out.println(o.toString()+"=="+properties.getProperty((String) o));
}
//entrySet
System.out.println("————————————————entrySet————————————————————————");
for (Map.Entry
总结
流:内存与存储设备之间传输数据的通道。
流的分类:
方向:输入流、输出流;
类型:字节流、字符流;
其他:节点流、缓冲流。
序列化:把内存中的数据写入到磁盘中。
反序列化:把磁盘中的数据读取到内存中。
类必须实现Serializable接口。
File对象
代表物理盘符中的一个文件或者文件夹。



