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());
}
相关推荐
caibixyy12 小时前
springboot+quartz 单机和集群使用示例-【备份任务】
java·quartz
invicinble12 小时前
对于spring的bean应该有哪些领域的认识
java·后端·spring
梦想的旅途212 小时前
实现企微外部群主动发送接口:从 0 到 1 实现主动给客户发送的业务实战
java·开发语言·企业微信
是宇写的啊12 小时前
博客系统-小项目
java·数据库·spring boot·mybatis
he___H12 小时前
leetcode100-合并区间
java·数据结构·算法
nbsaas-boot12 小时前
Drools 规则引擎实战:原理、规则语法、数据库动态规则与企业级玩法
java·数据库·python
Hwang25213 小时前
Spring 框架 -01 -单例池的一些理解
java
AI人工智能+电脑小能手13 小时前
【大白话说Java面试题 第74题】【Mysql篇】第4题:InnoDB 和 MyISAM 的数据文件存储区别?
java·开发语言·mysql·面试
qq_25183645713 小时前
基于java Web快乐岛儿童网站设计与实现
java·开发语言·前端
憧憬成为java架构高手的小白13 小时前
苍穹外卖--day11数据统计-图形报表(管理端)
java·spring boot·echarts