编码:字符串变成字节数组。

解码:字节数组变成字符串

String --> byte[]; str.getBytes();

byte  --> String: new String(bytep[]);

如果编码的时候产生错误,就放弃

如果解码的时候产生错误,就编一次,解一次(通用方法)[对编码的时候用gbk,解码的

时候用utf-8,这种方法不行,因为utf-8会去找相似的字,结果源码就会变掉]

在记事本里输入联通两个字,就会变成乱码,因为这两个字符合联通的编码形式

符合UTF-8的编码规则

没有方法的接口称之为标记接口

FileOutputStream out;

out.write(256) 只是输出最低8位

打开记事本其实是解码的过程

objectInputStream与ObjectOutputStream

被操作的对象需要实现Serizlizable(标记接口); static final long serialVersionUID = 42L;

Serizlizable接口的标签

将堆内存中的对象转化为硬盘上的

所以静态的不能序列化(也称为持久化存储),,在方法区

加关键字transient 也不能序列化

管道流:

PipedInputStream 和PipedOutputStream

输入输出可以直接进行连接,通过结合线程使用

RandomAccessFile

随机访问文件,自身具备读写的方法。

通过skipBytes(int
x),seek (int x) 来达到随机访问

该类不是IO体系中的子类。

而是直接继承来自Object

但是它是IO包中成员,因为它具备读和写功能。

内部封装了一个数组,而且通过指针对数组元素进行操作

可以通过getFilePointer获取指针信息

同时可以通过seek改变指针的位置

其实文成读写的原理就是内部封装了字节输入流和输出流

通过构造函数可以看出,该类只能操作文件

如果模式为只读r,不会创建文件,会去读取一个已存在文件,如果该文件不存在

则会出现异常。

如果模式为rw,操作的文件不存在会自动创建,存在会创建,存在则不会覆盖

通过seek方法,调整对象中指针,a.write(int) 输出的是参数的最低8位,

可以用于操作基本数据类型的流对象

DataInputStream与DataOutputStream 如果以writeUTF只能以对应的方法来读取。不能用转换流,writeUTF用的UTF-8修改版

如果是字节流,存入到记事本里,系统会选择编码表来查,所以都是乱码。

操作基本数据类型

DataInputStream与DataOutputStream

操作字节数组

ByteArrayInpuStream 与

ByteArrayOutputStream

操作字符数组

CharArrayReader与CharArrayWrite

操作字符串

StringReader与StringWriter

ByteArrayInputStream: 在构造的时候,需要接收数据源,而且数据源是一个字节数组

ByteArrayOutputStream: 在构造的时候,不用定义数据目的,因为该对象中已经内部封装了可变长度的自己数组,这就是数据目的地。

因为这两个流对象都操作数组,并没有使用系统资源,所以,不用进行close关闭。

源设备:

键盘 System.in 硬盘 FileStream 内存 ArrayStream

目的设备:

控制台 
System.out     硬盘 FileStream  内存 ArrayStream

用流的思想来操作数组

计算机只能识别二进制数据,早起又来是电信号

为了方便应用计算机,让它可以识别各个国家的文字,就将各个国家的文字用数字来表示

并一一对应,形成一张表

这就是编码表

ASCII: 美国标准信息交换码
用一个字节的7位可表示

ISO8859-1 :
拉丁码表,欧洲码表, 用一个字节的8位表示

GB2312:
中国的中文码表

GBK:
中国的中文编码表升级,融合了更多的中文文字字符号

Unicode:
国标标准码,融合了多种文字;

UTF-8:
最多用三个字节来表示一个字符

中间其实走过Unicode ,用你好来测试

最新文章

  1. hihoCoder挑战赛25
  2. iOS开发 UIPanGestureRecognizer手势抽象类
  3. Shell’s Sort
  4. 将vs2012的项目转化成VS2010
  5. POJ 2186.Popular Cows (强连通)
  6. MFC--自定义消息
  7. Java 抽象工厂模式
  8. stickUp.js:98 Uncaught ReferenceError: vartop is not defined at HTMLDocument.<anonymous> (stickUp.js:98)
  9. .NET接入接口/请求服务器
  10. 关于子线程更新UI
  11. AndroidStudio中如何使用GsonFormat
  12. InvalidDataAccessResourceUsageException:mysql保留字引发的血案
  13. Spring Boot Tomcat配置详解
  14. Linux记录屏幕输出log
  15. CentOS6.x服务器OpenSSH平滑升级到7.3p版本——拒绝服务器漏洞攻击
  16. Redis的内存回收机制
  17. jmeter插件之自定义场景图(万能场景设计)
  18. 软工网络15团队作业8——Beta阶段冲刺合集
  19. Java JVM- jstat查看jvm的GC情况[转]
  20. Codeforces 895.C Square Subsets

热门文章

  1. jquery之wrap(),wrap(),unwrap()方法详解
  2. mimikatz2.0抓取WINDOWS密码
  3. JavaScript Replace 多个字符
  4. CUBRID学习笔记 8 复制数据库
  5. iOS 框架收集
  6. iOS 推送证书生成pem
  7. poj3525Most Distant Point from the Sea(半平面交)
  8. [js] 前端性能优化
  9. zabbix监控系统客户端安装
  10. 转 : c++ 结构体 前向声明