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

目录
相关文章
|
3天前
|
安全 Java 调度
深入理解Java并发编程:线程安全与性能优化
【5月更文挑战第12天】 在现代软件开发中,多线程编程是提升应用程序性能和响应能力的关键手段之一。特别是在Java语言中,由于其内置的跨平台线程支持,开发者可以轻松地创建和管理线程。然而,随之而来的并发问题也不容小觑。本文将探讨Java并发编程的核心概念,包括线程安全策略、锁机制以及性能优化技巧。通过实例分析与性能比较,我们旨在为读者提供一套既确保线程安全又兼顾性能的编程指导。
|
3天前
|
数据采集 安全 Java
Java并发编程学习12-任务取消(上)
【5月更文挑战第6天】本篇介绍了取消策略、线程中断、中断策略 和 响应中断的内容
30 4
Java并发编程学习12-任务取消(上)
|
1天前
|
Java 编译器
Java 并发编程中的锁优化策略
【5月更文挑战第17天】在 Java 并发编程中,锁是一种常见的同步机制,用于保护共享资源的访问。然而,不当使用锁可能导致性能问题和死锁风险。本文将探讨 Java 中的锁优化策略,包括锁粗化、锁消除、锁降级以及读写锁等技术,以提高并发程序的性能和可靠性。
|
1天前
|
Java 编译器
Java并发编程中的锁优化策略
【5月更文挑战第17天】在Java并发编程中,锁是一种常见的同步机制,用于保护共享资源。然而,使用不当的锁可能导致性能下降和死锁等问题。本文将探讨Java中锁的优化策略,包括锁粗化、锁消除、锁排序等方法,以提高程序的性能和可靠性。
|
1天前
|
存储 关系型数据库 MySQL
《MySQL 入门教程》第 05 篇 账户和权限,Java高并发编程详解深入理解pdf
《MySQL 入门教程》第 05 篇 账户和权限,Java高并发编程详解深入理解pdf
|
2天前
|
NoSQL Dubbo Java
StringBoot编程式事务与声明式事务java工程师面试突击第一季
StringBoot编程式事务与声明式事务java工程师面试突击第一季
|
3天前
|
安全 Java 开发者
深入理解Java并发编程:线程安全与性能优化
【5月更文挑战第15天】本文将深入探讨Java并发编程的核心概念,包括线程安全和性能优化。我们将通过实例分析,理解线程安全的重要性,并学习如何通过各种技术和策略来实现它。同时,我们也将探讨如何在保证线程安全的同时,提高程序的性能。
|
3天前
|
Java 编译器 开发者
Java并发编程中的锁优化策略
【5月更文挑战第15天】 在Java的多线程编程中,锁机制是实现线程同步的关键。然而,不当的锁使用往往导致性能瓶颈甚至死锁。本文深入探讨了Java并发编程中针对锁的优化策略,包括锁粗化、锁消除、锁分离以及读写锁的应用。通过具体实例和性能分析,我们将展示如何有效避免竞争条件,减少锁开销,并提升应用程序的整体性能。
|
3天前
|
消息中间件 并行计算 Java
Java中的多线程编程:基础知识与实践
【5月更文挑战第15天】 在现代计算机编程中,多线程是一个复杂但必不可少的概念。特别是在Java这种广泛使用的编程语言中,理解并掌握多线程编程是每个开发者必备的技能。本文将深入探讨Java中的多线程编程,从基础概念到实际应用场景,为读者提供全面的理论支持和实践指导。
|
3天前
|
Java 程序员 调度
Java中的多线程编程:从理论到实践
【5月更文挑战第14天】在现代计算机技术中,多线程编程是一个重要的概念。它允许多个线程并行执行,从而提高程序的运行效率。本文将从理论和实践两个角度深入探讨Java中的多线程编程,包括线程的基本概念、创建和控制线程的方法,以及如何处理线程同步和通信问题。