IO包中的其他类

来源:互联网 发布:淘宝上手机参数造假 编辑:程序博客网 时间:2024/04/30 21:21
1、打印流 :PrintWriter 、 PrintStream :可以直接操作输入流和文件

2、序列流 :SequenceInputStream : 对多个流进行合并

3、操作对象 :ObjectInputStream 、ObjectOutputStream

被操作的对象需要实现Serializable接口,Serializable接口只可以序列化堆内存中的东西,不能序列化静态常量。

当类中成员变量被transien t 修饰后,其值也只能在对内存中存在,不能实现序列化

4、管道流 : PipedInputStream 、PepedOutputStream :输入输出直接进行连接,通常结合多线程使用。

5、RandomAccessFile :支持随机访问文件的读取和写入,同时实现了DataInput和Dataoutput接口。内部封装了字节输入流和输出流。

不是IO体系中的子类,直接继承Object,是IO包中的成员。内部封装了一个数组,通过指针对数组的元素进行操作,通过getFilePointer()获取文件指针,

seek()设置文件指针,该类只能操作文件,操作文件时带有文件访问模式。数据分段写入的时候需要有规律。

只读 r,读取一个已存在的文件,如果文件不存在,抛出异常。

读写 rw,要操作的文件不存在,会自动创建,如果存在,不会覆盖。

6、操作基本数据类型: DataInputStream 、DataOutputStream

  方法:writeUTF() 以UTF-8修改版的方式写入字符串数据,必须用readUTF()读取其数据

操作字节数组的流对象:用流的读写思想来操作数组。

7、ByteArrayInputStream :构造时,需接收数据源,数据源是一个字节数组

      ByteArrayOutputStream:构造时,不用定义数据目的,该对象中已经内部封装了可变长度的字节数组。

这两个流对象都操作的数组,没有使用系统资源,不用close()关闭

操作字符数组流:CharArrayReader、 CharArrayWriter

操作字符串流对象:StringReader 、 StringWriter

8、字符编码:

      字符流的出现为了方便操作字符,重要的是加入了编码转换

      通过子类转换流完成 :InputStreamReader OutputStreamWriter,在对两个对象进行构造的时候可以加入字符集(编码表)。

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

      UTF-8:最多用3个字节表示一个字符。

      ISO8859-1: 欧洲编码

9、编码与解码

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

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

      String àbyte[] : str.getBytes(String charsetName)

      byte[] —>String : new String(byte[],String charsetName)

原创粉丝点击