当前位置: 首页 > news >正文

Java流控制文件

字节流 和 字符流

字节流(Byte Stream)

单位:字节(8 bit)
适用情况:不关心字符编码

点我看看代码
import java.io.*;public class Main {public static void main(String[] args) throws Exception {FileInputStream fis = new FileInputStream("test.txt");
//构造重载自动找路径,不需要File f = new File(路径)int b;while ((b = fis.read()) != -1) {System.out.print((char) b);}fis.close();}
}

read() 一次读 1 个字节
返回 -1 表示读完
中文可能乱码(因为没处理编码)
构造重载自动找路径,不需要File f = new File(路径)

字符流(Character Stream)

单位:字符(char,16 bit)
会自动处理 编码(UTF-8)
适合:
--->>文本文件(.txt / .java / .md)

点我看看代码示例
import java.io.*;public class Main {public static void main(String[] args) throws Exception {FileReader fr = new FileReader("test.txt");int c;while ((c = fr.read()) != -1) {System.out.print((char) c);}fr.close();}
}
适合: --->>图片、音频、视频、压缩包、二进制文件

操作过程

  1. 创建流对象
  2. 读 / 写数据
  3. 处理数据
    4. 关闭流
    不会自动把堆上这个对象关掉

可以用try-with-resources

try (FileInputStream fis = new FileInputStream("a.txt")) {//使用,关闭
}

以后真正要用的是BufferedReader这里随便贴一段代码吧

点击查看代码
import java.io.*;public class Main {public static void main(String[] args) throws Exception {BufferedReader br = new BufferedReader(new FileReader("test.txt"));String line;while ((line = br.readLine()) != null) {System.out.println(line);}br.close();}
}
//写文件
import java.io.*;public class Main {public static void main(String[] args) throws Exception {BufferedWriter bw = new BufferedWriter(new FileWriter("out.txt"));bw.write("Hello Java");bw.newLine();bw.write("字符流写入");bw.close();}
}
点我看看想法 **和Callable的关系**

就像FutureTask 来接受Callable实例?

哦我调查了一下,应该不太一样
BufferedReader:装饰器模式

public class BufferedReader extends Reader {protected Reader in;
}

它本身还是一个 Reader
只是 内部持有另一个 Reader

FutureTask:任务适配 + 状态机
FutureTask 的关系是:
Callable → 提供计算逻辑
FutureTask → 管理执行、状态、结果

FutureTask<V> implements RunnableFuture<V>

BufferedReader 是“能力增强型包装”,
FutureTask 是“执行语义转换型包装”

管道流之类的其实也学了,也有笔记,忘了,下次再翻着笔记写写吧

手记

点击查看笔记图片 ~~传两张得了~~

image
image

http://www.jsqmd.com/news/82094/

相关文章:

  • 2025年比较好的无磁钨钢模具材料/耐冲击钨钢模具材料热门厂家推荐榜单 - 品牌宣传支持者
  • 零基础教程:5分钟搞定Docker+Nginx
  • 2025年本地地毯清洗服务口碑排行,前十名清洗效果实测!海淀靠谱的地毯清洗推荐聚焦技术实力与行业适配性 - 品牌推荐师
  • 并查集与最小生成树:从入门到精通的完整指南
  • 2025年口碑好的304不锈钢防爆配电箱/移动式防爆配电箱厂家推荐及选择指南 - 品牌宣传支持者
  • 快速验证:自制IE11离线包生成器原型
  • MATLAB控制系统工具箱中,series、parallel、feedback和cloop这四个函数输入参数格式说明
  • 2025年如何挑选本地评价好的铝丝打卡机厂家,国内打卡机电话优质品牌榜单更新 - 品牌推荐师
  • 1小时用MCP工具打造智能客服原型:实战演示
  • 17、D-Bus与systemd:Linux系统核心服务深度解析
  • Qt部署安卓构建环境
  • PPTX转Markdown全攻略:从入门到精通的高效转换方案
  • 2025年12月生活污水超干脱水压滤机,隔膜压滤机,板框压滤机厂家推荐,环保达标设备红榜! - 品牌鉴赏师
  • 1、实用数字取证成像:Linux 工具的力量
  • 视觉即方言:字节跳动Tar-7B重构多模态交互新范式
  • 开源图形编程文档平台的终极技术革新与社区协作模式深度解析
  • 2025年比较好的不锈钢厂家最新用户好评榜 - 品牌宣传支持者
  • 文科生也能闯网安!零基础入门网络安全的全攻略​
  • 2025年口碑好的tpep防腐钢管最新TOP厂家排名 - 品牌宣传支持者
  • 彻底解放游戏束缚:ER-Save-Editor让你成为真正的存档编辑大师
  • 浅谈WAF绕过技巧
  • FunASR模型部署实战:从训练到生产环境的完整指南
  • 5分钟快速上手SigLIP:零代码实现智能图像识别
  • 320亿参数本地化部署:Qwen3-32B-MLX模型如何重新定义苹果设备AI体验
  • 死锁的求生指南:从死锁到解锁,后端开发的必修课
  • Python小白必看:图解解决‘pip不是内部命令‘
  • 如何快速上手Artillery:完整的负载测试入门指南
  • 科研团队如何用EndNote X9高效管理5000+文献
  • abc399e
  • Java线程池全解析:从内部机制到实战应用