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

网站建设案例收费吗靖江网站定制

网站建设案例收费吗,靖江网站定制,做游戏网站在哪里找,一流的医疗网站建设Java I/O 流体系详解与记忆方法 一、I/O 流核心框架 Java I/O 流体系是Java处理输入输出的核心API,主要分为两大阵营: 1. 按数据流向分(输入和输出是相对于内存而言的) 内存:临时存储数据的空间 硬盘:…

Java I/O 流体系详解与记忆方法

一、I/O 流核心框架

Java I/O 流体系是Java处理输入输出的核心API,主要分为两大阵营:

1. 按数据流向分(输入和输出是相对于内存而言的)

内存:临时存储数据的空间

硬盘:持久化设备

记忆:可以把内存比作大脑,本子记做硬盘,将内容写道本子上,就是输出/write

  • 输入流:从外部读入程序(InputStream/Reader)(从硬盘到内存)

  • 输出流:从程序写出到外部(OutputStream/Writer)(从内存到硬盘)

2. 按数据类型分

类型特点抽象基类单位典型实现类
字节流(一次读取一个字节)处理二进制数据,适合读取图片,声音,视频等文件。(当然字节流是万能的。什么都可以读和写)InputStream字节FileInputStream
OutputStreamFileOutputStream
字符流(一次读取一个字符)处理文本数据,只适合读取普通文本Reader字符FileReader
WriterFileWriter

二、核心类继承体系

字节流体系

mermaid

classDiagramInputStream <|-- FileInputStreamInputStream <|-- ByteArrayInputStreamInputStream <|-- FilterInputStreamFilterInputStream <|-- BufferedInputStreamFilterInputStream <|-- DataInputStreamOutputStream <|-- FileOutputStreamOutputStream <|-- ByteArrayOutputStreamOutputStream <|-- FilterOutputStreamFilterOutputStream <|-- BufferedOutputStreamFilterOutputStream <|-- DataOutputStream

字符流体系

mermaid

classDiagramReader <|-- FileReaderReader <|-- BufferedReaderReader <|-- InputStreamReaderWriter <|-- FileWriterWriter <|-- BufferedWriterWriter <|-- OutputStreamWriter

三、关键装饰器模式

Java I/O 采用装饰器模式增强功能:

  • 缓冲流BufferedInputStream/BufferedReader

  • 数据流DataInputStream/DataOutputStream

  • 对象序列化ObjectInputStream/ObjectOutputStream

  • 转换流InputStreamReader/OutputStreamWriter

四、记忆口诀

1. 基础分类记忆法

"字节字符分两家,输入输出各不同"

  • 字节流用于所有数据类型(如图片、视频)

  • 字符流专为文本优化(自动处理编码)

2. 命名规律记忆

  • 后缀规则

    • InputStream/OutputStream → 字节流(看结尾,结尾是Stream,就是字节流)

    • Reader/Writer → 字符流

  • 前缀规则

    • Buffered → 缓冲功能

    • Data → 基本数据类型读写

    • Object → 对象序列化

3. 生活场景联想

  • 文件拷贝

    java

    // 字节流适合任意文件
    try (InputStream is = new FileInputStream("src.jpg");OutputStream os = new FileOutputStream("dest.jpg")) {byte[] buffer = new byte[1024];int len;while ((len = is.read(buffer)) != -1) {os.write(buffer, 0, len);}
    }

    文本读取

    java

// 字符流+缓冲提升文本读取效率
try (BufferedReader br = new BufferedReader(new FileReader("text.txt"))) {String line;while ((line = br.readLine()) != null) {System.out.println(line);}
}

五、面试高频问题

1. 字节流 vs 字符流如何选择?

  • 字节流:处理二进制文件(如图片、压缩包)

  • 字符流:处理文本文件(自动处理编码,如UTF-8)

2. 为什么需要缓冲流?

  • 减少磁盘IO次数:默认每次read/write都直接操作磁盘,缓冲流在内存中积累数据后批量操作

  • 性能对比

    java

// 无缓冲(慢)
FileInputStream fis = new FileInputStream("large.bin");// 有缓冲(快10-100倍)
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("large.bin"));

3. 转换流(InputStreamReader)的作用?

  • 桥梁作用:将字节流转换为字符流

  • 指定编码

    java

// 显式指定GBK编码读取文本
new InputStreamReader(new FileInputStream("text.txt"), "GBK");

六、典型代码模板

1. 文件复制(字节流)

java

try (InputStream is = new FileInputStream("source");OutputStream os = new FileOutputStream("target")) {byte[] buf = new byte[8192];int len;while ((len = is.read(buf)) != -1) {os.write(buf, 0, len);}
}

2. 文本处理(字符流)

java

// 读取文本文件(自动处理编码)
try (BufferedReader br = new BufferedReader(new FileReader("text.txt"))) {br.lines().forEach(System.out::println);
}// 写入文本(追加模式)
try (BufferedWriter bw = new BufferedWriter(new FileWriter("log.txt", true))) {bw.write("新的日志内容");bw.newLine();
}
http://www.dtcms.com/a/513037.html

相关文章:

  • debug - eclipseCPP + openocd + 引入arm-gcc makefile工程来单步调试
  • 数据结构——十字链表
  • 怎么自己编程做网站北京建设工程主管部门网站
  • 基于文本+视觉混合输入的恶意流量检测方法猜想
  • spark实战:python股票数据分析可视化系统 Flask框架 金融数据分析 Echarts可视化 大数据技术 ✅
  • 连云港网站关键字优化市场自己做网站背景图片
  • wordpress文章加预览图外贸seo推广
  • Java面试精选:如何轻松的拿下offer?
  • 网站前瞻性_新流量机会内容建设分析华为邮箱注册
  • Java-集合(开发的重点)
  • docker技术之container与docker介绍
  • 如何做外贸soho做网站网站开发html5技术
  • 外国人做的甲骨文网站做网站需要切图吗
  • Redis如何解决key冲突?
  • 解决 QML 中使用 Qt Charts 崩溃的三个关键步骤
  • 2025算力行业趋势下的4090云主机租赁方案
  • 一起做网站17沧州网站建设哪家好
  • 如何在百度提交网站莲湖免费做网站
  • 网站统计排名做装修网站价格
  • 基于 Redis 的布隆过滤器:高效的数据存在性检查
  • 【经典书籍】C++ Primer 第9章顺序容器精华讲解
  • 基于MATLAB的光学相干断层扫描图像处理与定量分析算法研究
  • 怎么做发卡网站购买网站app制作
  • 淘客做网站怎么备案手机上网站
  • 解决IAR编译路径空格报错
  • 【JUnit实战3_05】第三章:JUnit 的体系结构(上)
  • Oracle 打补丁指南
  • 蓝奥声智能插座:从“用电计量”到“设备健康预测”的跨越
  • 网站域名到期广东网站建站公司
  • 林地变化检测技术拆解:基于语义分割的双时相卫星影像比对实现方案