当前位置: 首页 > 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.gsyq.cn/news/92230.html

相关文章:

  • 并查集与最小生成树:从入门到精通的完整指南
  • macOS Tahoe 26.2 (25C56) 正式版 ISO、IPSW、PKG 下载
  • Qt部署安卓构建环境
  • 视觉即方言:字节跳动Tar-7B重构多模态交互新范式
  • Qt控件小技巧:QPushButton的一些隐藏玩法
  • 彻底解放游戏束缚:ER-Save-Editor让你成为真正的存档编辑大师
  • 5分钟快速上手SigLIP:零代码实现智能图像识别
  • 320亿参数本地化部署:Qwen3-32B-MLX模型如何重新定义苹果设备AI体验
  • 死锁的求生指南:从死锁到解锁,后端开发的必修课
  • 2025海关数据服务商TOP5权威推荐:深度测评指南,腾道海 - 工业推荐榜
  • MAX30102入门指南:5步完成第一个项目
  • ConvNeXt预训练模型实战指南:快速上手与问题解决
  • 2025智能清洁机器人TOP5权威推荐:甄选企业助力清洁数字 - mypinpai
  • 2025不锈钢螺旋焊管机组厂家TOP5权威推荐:助力钢管企业 - 工业品牌热点
  • 【触想智能】工业平板电脑定制需要考虑的主要问题
  • 告别命令行HTTP调试困境:wuzz终极解决方案完全指南
  • 2025年质量好的弹簧式安全阀/带扳手安全阀厂家最新热销排行 - 行业平台推荐
  • Windows权限管理入门:从‘需要管理员权限‘学起
  • 终极量化金融框架:GS Quant如何重塑你的投资决策体系
  • 【文章分享】K线图怎么看,有什么意义?
  • Android视频自动播放完整指南:轻松实现RecyclerView中视频智能播放
  • 1分钟用AI创建CSS透明度效果原型
  • Nools:JavaScript规则引擎的终极指南
  • 网络穿透技术深度解析:如何用ZeroTierOne实现真正的“地球局域网“?
  • 3分钟搞定pgvector Docker部署:版本兼容性避坑指南
  • 【第十天】10c#今日小结
  • AI如何优化strlen函数?提升字符串处理效率
  • 2025大模型效率革命:Qwen3-30B-A3B-MLX-4bit如何重新定义企业级AI部署
  • SeedVR2 3B模型发布:重新定义AI视觉增强的新标杆
  • ASME Y14.5-2018 终极指南:掌握现代几何公差与尺寸标注技术 [特殊字符]