java基础---IO流其他特殊类
一、对象流(传递对象的)
--类:ObjectInputStream、ObjectOutputStream
代码如下:
二、管道流
--类:PipedInputStream、PipedOutStream
利用多线程来从这边读入另一边写出;或者从这边写出那边读入
这边读的为空的话就停止从那边写入 ,这两个线程不一定谁先谁后;
具体代码如下:
三、特殊的独立类RandomAccessFile
---不属于IO流中的类,是单独的类,是直接继承于object类的;
---它具有读写能力;
---内部封装了一个数组,可以通过指针来指定位置、操作数据;
---可以通过getFilePointer来得到指针位置;
---可以通过seek来改变指针位置即指定位置;
具体用法及代码如下:
四、能操作基本数据类型的类
DataInputStream、DataOutputStream
具体代码如下:
五、用于操作字节数组的流对象
ByteArrayInputStream:
在构造时,需要一个字节数组来作为参数,也就是要读取的内容----字节数 组;
ByteArrayOutputStream:
在构造时,不用定义数据目的,因为在该对象中内部已经封装了可变长度的 数组,这个数组就是所谓的目的;
注意:这两个对象操作的是数组,所以并没有使用数据资源,没必要关闭;
具体代码如下:
六、编解码
字符流的出现是为了方便操作字符,更重要的是加入了编码转换 ,这个转换主要通过转换流(InputStreamReader/OutputStreamWriter)来做的;在转换流是加入字符集参数;
七、字符编码
具体代码如下:
1、正常的编解码,也就是信息的传输
2、编解码不正确时的处理
当采用的编码与解码不一致时,这就会乱码;此时,就要将解码后的乱码重新通过解码时的编码格式再对其进行解码,即就是将其转化为数组(数字类型),这样再将其数字通过正确的解码方式重新解码即可。
八、“联通”的特殊:
在记事本里面打入“联通”后保存再打开就会乱码;这是由于“联通”二字的二进制编码数字会被认为是utf-8的编码,从而产生乱码;
九、录入学生信息
具体代码如下: