复习笔记13 字符流与字节流

1 标准输入输出流&转换流&打印流

1.1 标准输入输出流

public static final InputStream in:标准输入流 ,用来读取键盘录入的数据

public static final PrintStream out:标准输出流,将数据输出到命令行

1.2 转换流

OutputStreamWriter(OutputStream out) :转换流,把字节输出流转换成字符输出流

InputStreamReader(InputStream in) :转换流,把字节输入流转换成字符输入流

1.3 打印流

打印流添加输出数据的功能,使它们能够方便地打印各种数据值表示形式.

字符打印流 PrintWriter

void print(String str): 输出任意类型的数据,

void println(String str): 输出任意类型的数据,自动写入换行操作

可以自动换行,println()

不能输出字节,但是可以输出其他任意类型

通过某些配置,可以实现自动刷新(只有在调用 printlnprintf  format才有用)

也是包装流,不具备写出功能

可以把字节输出流转换成字符输出流

注意:只能输出不能输入

2 操作流对象

 

对象操作流:可以用于读写任意类型的对象

ObjectOutputStream

  writeObject

  ObjectOutputStream(OutputStream out)

ObjectInputStream

  readObject

  ObjectInputStream(InputStream in)

注意:

使用对象输出流写出对象,只能使用对象输入流来读取对象

只能将支持 java.io.Serializable 接口的对象写入流中

3 Properties集合

3.1 Properties介绍

Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。

特点:

1、Hashtable的子类,map集合中的方法都可以用。

2、该集合没有泛型。键值都是字符串。

3、它是一个可以持久化的属性集。键值可以存储到集合中,也可以存储到持久化的设备(硬盘、U盘、光盘)上。键值的来源也可以是持久化的设备。

4、有和流技术相结合的方法。

3.2 与流结合使用

PropertiesIO流结合的功能:

void load(Reader reader)

void list(PrintWriter out)

void store(Writer writer, String comments)

4 编码表

4.1 编码表的概述

编码表:把计算机底层的二进制数据转换成我们能看到的字符

ASCII

GB2312 --- GBK

Unicode 所有的字符都占2个字节

UTF-8 长度可变的码表

ANSI:本地编码表 gbk

 Java中的字符串默认使用的ANSIgbk

乱码:编码保持前后一致即可解决

4.2 JAVA中字符串的编码

常用方法

构造方法(字节数组转字符串):

String():初始化一个新创建的 String 对象,使其表示一个空字符序列

String(byte[] bytes) 使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String

String(byte[] bytes, Charset charset) 通过使用指定的 charset 解码指定的 byte 数组,构造一个新的 String成员方法(字符串转字节数组)

getBytes() 使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中

getBytes(Charset charset) 使用给定的 charset 将此 String 编码到 byte 序列,并将结果存储到新的 byte 数组

4.3 字符流中的编码

InputStreamReader(InputStream in, CharsetDecoder dec) 创建使用给定字符集解码器的 InputStreamReader

OutputStreamWriter(OutputStream out, CharsetEncoder enc) 创建使用给定字符集编码器的 OutputStreamWriter

posted @ 2018-12-14 12:08  陈某啊  阅读(132)  评论(0编辑  收藏  举报