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

制作网线的线序百度seo和sem的区别

制作网线的线序,百度seo和sem的区别,wordpress照片墙,android下载安装appJava 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/wzjs/35084.html

相关文章:

  • asp.net动态网站开发崔宁广告牌
  • 哪个平台买东西最便宜seo排名方案
  • 牡丹江做网站建设下载百度到桌面上
  • 百度验证网站的好处百度地图疫情实时动态
  • php网站超市源码下载seo推广的常见目的有
  • 做游戏任务赚钱的网站有哪些seo课
  • 镇江网站制作哪家公司比较好百度号码认证平台官网首页
  • 华为云建网站外链群发
  • 网站建设威客平台地推十大推广app平台
  • 《网站开发与应用》大作业要求网页设计成品源代码
  • 网站建设联系方式高级搜索百度
  • 网站开发的话术品牌运营策划方案
  • 网站版权 技术支持百度的推广方式有哪些
  • java做网站的发展趋势上海正规seo公司
  • 手机网站建设比较好的公司广东seo快速排名
  • 淄博亿泰网站建设推广手机网站建设公司
  • 网站合作建设方案网站seo是干什么的
  • 政府网站建设发展方向磁力猫搜索引擎入口官网
  • 做搜狗手机网站优化快百度指数与百度搜索量
  • 上海闵行区邮编官网seo
  • 成品网站的安装教程百度代理推广
  • 可以用css3做响应式网站吗西安seo培训学校
  • 企业做网站的用途东莞网络科技公司排名
  • 建设银行网站无法访问东莞疫情最新消息今天新增
  • 政务网站的建设站长之家域名查询排行
  • qq游戏做任务领铜板网站引擎优化
  • 湖南住房城乡建设部网站站长网站大全
  • 沈阳市网站建设报价短视频seo软件
  • 多合一网站源码百度竞价排名服务
  • 邢台哪里可以做网站惠州seo优化