Java File 核心知识点

Java File 核心知识点

一、核心类

  • java.io.File:文件 / 目录路径描述类,可判断属性、创建删除,不能读写内容
  • 字节流:FileInputStream/FileOutputStream 处理所有类型文件
  • 字符流:FileReader/FileWriter 仅处理文本文件

二、File 类常用构造

java

运行

复制代码
File file = new File("a.txt"); //相对路径
File file = new File("D:\\test\\a.txt"); //绝对路径

三、File 常用方法

判断方法

  • exists():文件是否存在
  • isFile():是否为文件
  • isDirectory():是否为文件夹

创建删除

  • createNewFile():新建空文件
  • mkdir():创建单级目录
  • mkdirs():创建多级目录
  • delete():删除文件 / 空目录

获取信息

  • getName():文件名
  • getAbsolutePath():绝对路径
  • length():文件字节大小

四、文件读写基础

1. 字节流读写

java

运行

复制代码
//写入
try(FileOutputStream fos = new FileOutputStream("b.txt")){
    fos.write("测试内容".getBytes());
}catch (IOException e){
    e.printStackTrace();
}

//读取
try(FileInputStream fis = new FileInputStream("b.txt")){
    byte[] buf = new byte[1024];
    int len;
    while((len = fis.read(buf)) != -1){
        System.out.print(new String(buf,0,len));
    }
}catch (IOException e){
    e.printStackTrace();
}

2. 字符流读写(文本专用)

java

运行

复制代码
//写入
try(FileWriter fw = new FileWriter("c.txt",true)){//true追加
    fw.write("文字内容");
}catch (IOException e){}

//读取
try(FileReader fr = new FileReader("c.txt")){
    char[] ch = new char[1024];
    int len;
    while((len = fr.read(ch))!=-1){
        System.out.print(new String(ch,0,len));
    }
}catch (IOException e){}

五、关键要点

  1. 路径分隔:Windows 用\\,通用写法/
  2. 流用完必须关闭,try-with-resources自动关流
  3. write覆盖原有内容,构造传true开启追加
  4. 字节流通用,字符流只适配 txt 等文本
  5. 所有 IO 操作必须捕获IOException异常

六、常用遍历目录

java

运行

复制代码
File dir = new File("D:\\test");
File[] files = dir.listFiles();
for(File f : files){
    System.out.println(f.getName());
}
相关推荐
devilnumber3 分钟前
避坑_IDEA 提取方法(Extract Method)工具
java·ide·intellij-idea
鬼手点金17 分钟前
Agent 的学习机制:后训练、上下文学习与外部化学习
java·人工智能·git·学习·自动化·nanogpt
小陈不好吃27 分钟前
equals 与 hashCode 的契约关系:从 HashMap 到 Lombok 注解
java·hashmap·lombok
xiaogai_gai1 小时前
金蝶收料通知单查询策略实战教程:从源系统拉取到中间层落地的完整路径
java·前端·数据库
打工仔折腾 AI1 小时前
用 Dashlet 把极空间 NAS 服务入口整理成统一导航首页的实践
java·开发语言·人工智能·后端·python·rpc·ai agent 实战
小蒜学长2 小时前
微信小程序-高校自习室管理系统(代码+数据库+LW)
java·spring boot·后端·微信小程序·自习室管理
鸥梨菌Honevid2 小时前
UVM 中 REQ 和 RSP 类型详解:从通信模型到 item_done 与 put_response
java·前端·servlet
瑞克-桑切斯3 小时前
真实企业场景 运维安全与管理
java·网络·github
老板一杯拿铁3 小时前
Java 八股文面试详解:从基础到进阶的全面梳理
java·面试
const_qiu3 小时前
第 2.5 章 2.5.4-2.5.5:JWT 双 Token 与声明式权限守卫
java·人工智能