Java编程之缓冲流+对象流

简介: 字符集 字符 文字和符号总称(Character) 不同国家的数字和符号是一样的 字母 不同国家的文字 中文 日文 韩文 计算机最早产生是按照英语单词 单个字符设计的 字母 数字 符号-----1字节 8bit 256 如果计算机想要处理除了上述字母符号以外的其他字符---比如中文2字节 需要将中文进行字符编码----->拆分 和 组合 拆分合组合的规则---所谓的字符编码 常见的字符编码 ASCII American Standard Code for Information Interchange ISO-8859-1 GB2

知识回顾

字符型文件流

 FileReader FileWriter

 只能操作纯文本的文件.txt   .properties

 1.java.io包

 2.带参数的构造方法  File      String   boolean

 3.创建字符流对象的时候  会产生编译时异常  FileNotFoundException

 4.基本使用

 int code = read();  write(int code);

 int count = read(char[]); write(char[]);

    write(String);

 close()   flush(); close();

字符集

字符   文字和符号总称(Character)

不同国家的数字和符号是一样的   字母

不同国家的文字   中文   日文   韩文

计算机最早产生是按照英语单词  单个字符设计的

字母  数字  符号-----1字节   8bit   256

如果计算机想要处理除了上述字母符号以外的其他字符---比如中文2字节

需要将中文进行字符编码----->拆分 和 组合

拆分合组合的规则---所谓的字符编码

常见的字符编码

 ASCII American Standard Code for Information Interchange

 ISO-8859-1

 GB2312   GB18030   GBK BIG5

 Unicode

 UTF-8   UTF-16

 平台(操作系统)默认字符集GBK Linux(MacOS)默认字符集UTF-8

 编程序使用的开发环境(IDE)   Idea-->UTF-8   Eclipse-->GBK

 注意在用记事本存储文字    流操作纯文本形式的时候

 字符的形式采用UTF-8

 String s = "你我他";

 byte[] = s.getBytes("UTF-8");

 new String(byte[],"UTF-8");

文件流

 FileInputStream/FileOutputStream

          FileReader/FileWriter

缓冲流

 在流管道内增加缓存的数据

 让我们使用流读取的文字更加的流畅

 高级流--->创建通过低级流

 BufferedInputStream/BufferedOutputStream

          BufferedReader/BufferedWriter

 BufferedInputStream

 构建方式  使用低级流构建

 基本使用与低级流的方法完全一致

 read()  skip()  available()  close()

 BufferedOutputStream

 构建方式  使用低级流构建   注意 缓冲流构建的时候没有boolean类型的参数

 基本使用与低级流的方法完全一致

 write()   flush()  close()

数组  box  集合(List Set Map)--->做真实数据的存储

 都不好--->临时性的存储  都在内存中

 文件----->永久性的存储  存储在硬盘上

 BufferedReader

  String value = readLine();

 BufferedWriter

  write(String)

  newLine()

  File

  InputStream OutputStream

  Reader  Writer

*文件流

 低级

  字节型 FileInputStream  FileOutputStream

  字符型 FileReader  FileWriter 字符集65279

 *缓冲

  字节型 BufferedInputStream  BufferedOutputStream

  字符型 BufferedReader BufferedWriter

数组流

 byte数组  ByteArrayInputStream ByteArrayOutputStream

 char数组  CharArrayReader  CharArrayWriter

数据流   DataInputStream  DataOutputStream

字符串流   StringReader  StringWriter

*对象流   ObjectInputStream  ObjectOutputStream

File+流

 1.为什么要有文件?

  文件永久性的保存信息 将很多的数据直接存入文件----数据持久化

 2.如果按照以行为单位写信息

  好处在于每一行记录的信息都是相关的

  信息我们可以读取出来   直接看懂文件

  不好在于第一不安全  直接看懂

  不好在于只能记录String信息 不能记录一些动作(方法)

 3.读取出来的信息 String ---> Person

 4.如果能将对象拆分成字节码 直接写入文件

  将对象直接存入文件中----对象流

 对象的序列化/反序列化

 对象的序列化指的是  

  将一个完整的对象 拆分成字节碎片 记录在文件中

 对象的反序列化指的是

  将文件中记录的对象随便 反过来组合成一个完整的对象

 如果想要将对象序列化到文件中

  需要让对象实现Serializable接口

  是一个示意性接口

  同时为了让对象可以反序列化

  需要让对象中多存在一个属性  private long serialVersionUID = 任意L;

 如果想要将对象反序列化

  需要给对象提供一个序列化的版本号  1.7版本-->String   1.8-->String

目录
打赏
0
0
0
1
1
分享
相关文章
【高薪程序员必看】万字长文拆解Java并发编程!(2 2-2)
📌 核心痛点暴击:1️⃣ 面了8家都被问synchronized锁升级?一张图看懂偏向锁→重量级锁全过程!2️⃣ 线程池参数不会配?高并发场景下这些参数调优救了项目组命!3️⃣ volatile双重检测单例模式到底安不安全?99%人踩过的内存可见性大坑!💡 独家亮点抢先看:✅ 图解JVM内存模型(JMM)三大特性,看完再也不怕指令重排序✅ 手撕ReentrantLock源码,AQS队列同步器实现原理大揭秘✅ 全网最细线程状态转换图(附6种状态转换触发条件表)
65 0
|
2月前
|
【高薪程序员必看】万字长文拆解Java并发编程!(5):深入理解JMM:Java内存模型的三大特性与volatile底层原理
JMM,Java Memory Model,Java内存模型,定义了主内存,工作内存,确保Java在不同平台上的正确运行主内存Main Memory:所有线程共享的内存区域,所有的变量都存储在主存中工作内存Working Memory:每个线程拥有自己的工作内存,用于保存变量的副本.线程执行过程中先将主内存中的变量读到工作内存中,对变量进行操作之后再将变量写入主内存,jvm概念说明主内存所有线程共享的内存区域,存储原始变量(堆内存中的对象实例和静态变量)工作内存。
97 0
【高薪程序员必看】万字长文拆解Java并发编程!(8):设计模式-享元模式设计指南
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发编程中的经典对象复用设计模式-享元模式,废话不多说让我们直接开始。
66 0
2025 更新必看:Java 编程基础入门级超级完整版指南
本教程为2025更新版Java编程基础入门指南,涵盖开发环境搭建(SDKMAN!管理JDK、VS Code配置)、Java 17+新特性(文本块、Switch表达式增强、Record类)、面向对象编程(接口默认方法、抽象类与模板方法)、集合框架深度应用(Stream API高级操作、并发集合)、模式匹配与密封类等。还包括学生成绩管理系统实战项目,涉及Maven构建、Lombok简化代码、JDBC数据库操作及JavaFX界面开发。同时提供JUnit测试、日志框架使用技巧及进阶学习资源推荐,助你掌握Java核心技术并迈向高级开发。
154 5
Java 编程进阶实操中工具集整合组件封装方法与使用指南详解
本文详细介绍Hutool工具集和图书管理系统相关组件的封装方法及使用示例。通过通用工具类封装(如日期格式化、字符串处理、加密等)、数据库操作封装(结合Hutool DbUtil与MyBatis)、前端Vue组件封装(图书列表与借阅表单)以及后端服务层封装(业务逻辑实现与REST API设计),帮助开发者提升代码复用性与可维护性。同时,提供最佳实践建议,如单一职责原则、高内聚低耦合、参数配置化等,助力高效开发。适用于Java编程进阶学习与实际项目应用。
115 10
java 编程基础入门级超级完整版教程详解
这份文档是针对Java编程入门学习者的超级完整版教程,涵盖了从环境搭建到实际项目应用的全方位内容。首先介绍了Java的基本概念与开发环境配置方法,随后深入讲解了基础语法、控制流程、面向对象编程的核心思想,并配以具体代码示例。接着探讨了常用类库与API的应用,如字符串操作、集合框架及文件处理等。最后通过一个学生成绩管理系统的实例,帮助读者将理论知识应用于实践。此外,还提供了进阶学习建议,引导学员逐步掌握更复杂的Java技术。适合初学者系统性学习Java编程。资源地址:[点击访问](https://pan.quark.cn/s/14fcf913bae6)。
152 2
Java 编程进阶实操之工具集整合应用指南
本文聚焦Java编程进阶实操,涵盖并发编程、性能优化及数据库操作优化等核心知识点,并结合Hutool、Postman、Git等实用工具,提供从理论到实践的学习路径。通过小型图书管理系统实战项目,详细解析技术选型与实现步骤,助力开发者掌握Spring Boot、MyBatis等框架应用。同时展望Java新特性与技术趋势,为职业发展奠定基础。资源链接:[点此获取](https://pan.quark.cn/s/14fcf913bae6)。
68 1
Java编程实用技巧:提升代码质量与开发效率
Java作为一门成熟且广泛应用的编程语言,掌握一些实用技巧可以显著提高开发效率和代码质量。以下是值得Java开发者掌握的实用技巧:
62 6
2025 年 Java 秋招面试必看 Java 并发编程面试题实操篇
Java并发编程是Java技术栈中非常重要的一部分,也是面试中的高频考点。本文从基础概念、关键机制、工具类、高级技术等多个方面进行了介绍,并提供了丰富的实操示例。希望通过本文的学习,你能够掌握Java并发编程的核心知识,在面试中取得好成绩。同时,在实际工作中,也能够运用这些知识设计和实现高效、稳定的并发系统。
46 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问