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());
}
相关推荐
憧憬成为java架构高手的小白3 分钟前
LangGraph4j 实战(下)
java
天诰23 分钟前
SA-K-11 检索会消失吗与四个未解问题
java·服务器·人工智能·python·机器学习·ai编程
这个昵称不容易4 小时前
SpringBoot「衣依」服装销售平台:144个Java文件180个接口,从挑衣服到收货评价整条链路都在
java·springboot·毕设
计算机毕设定制辅导-无忧学长4 小时前
《基于微信小程序的居家医疗陪护预约系统设计与实现》
java·spring boot·微信小程序·uniapp·居家医疗陪护预约系统
文丑颜不良啊6 小时前
LeetCode2221~2240题目解析
java·leetcode
秋饼6 小时前
Computer Use Agent Java 落地实战:感知-行动循环、执行器与安全围栏生产级实现
java·ai·技术分享·后端开发
文丑颜不良啊8 小时前
LeetCode2161~2180题目解析
java·leetcode
文丑颜不良啊9 小时前
LeetCode2141~2160题目解析
java·leetcode
LabVIEW开发10 小时前
LabVIEW 连接板:28 个端子怎么排,优先级怎么定
java·算法·labview
天天被压力10 小时前
【A股分钟级高频数据完全手册 #07】北交所历史分钟K线接口:京市Pro版分时批量
java·人工智能·python