-
3.对象的序列化,反序列化 1)对象序列化,就是将Object转换成byte序列,反之叫对象的反序列化 2)序列化流(ObjectOutputStream,ObjectOutputStream创建的时候可以在其参数中传递一个FileOutputStream(file),将序列化后的对象存到文件(file)中),是过滤流----writeObject 反序列化流(ObjectInputStream)---readObject 3)序列化接口(Serializable) 对象必须实现序列化接口 ,才能进行序列化,否则将出现异常 这个接口,没有任何方法,只是一个标准查看全部
-
字符流过滤器: BufferdReader,可以读一行 BufferdWriter,可以写一行查看全部
-
"gbk编码"一个中文占两个字节英文占一个字节,"UTF-8"编码一个中文占三个字节一个英文占一个字节,"UTF-16be编码"中英文都占两个字节。查看全部
-
eclipse 默认编码 是“UTF-16be”查看全部
-
IO流中方法的功能查看全部
-
JAVA I/O 输入输出流 1.编码问题 String s="幕课ABC"; //转换字节序列用的是默认编码UTF-8,汉字3字节 byte[] bytes1=s.getBytes("UTF-8"); for(byte b:bytes1){ // & 0xff 去掉前面24个0,留下后8位 System.out.print(Integer.toHexString(b & 0xff)+" "); } //转换字节序列用的编码gbk,汉字2字节 System.out.println(""); byte[] bytes2=s.getBytes("gbk"); for(byte b2:bytes2){ // & 0xff 去掉前面24个0,留下后8位 System.out.print(Integer.toHexString(b2 & 0xff)+" "); } //Java双字节编码 UTF-16be 中文2字节,英文2字节 System.out.println(); byte[] bytes3=s.getBytes("UTF-16be"); for(byte b:bytes3){ System.out.print(Integer.toHexString(b & 0xff)+" "); } //当你的字节序列是某种编码时,把字节序列变成字符串,也需要用该编发,否则乱码 System.out.println(); String str1 = new String(bytes3);//用项目默认编码 System.out.println(str1); String str2 = new String(bytes3,"UTF-16be"); System.out.println(str2);查看全部
-
RandomAccessFile的使用查看全部
-
编码的使用查看全部
-
一个类实现了序列化接口,他的子类不需要再次实现序列化; 反序列化时,没实现序列化的父类的构造方法会被现实调用,实现了序列化的父类的构造方法不会被显示调用;查看全部
-
使用transient可以进行数组有效元素的序列化,可提高效率,对于一个整数、字符等没必要使用transient。查看全部
-
transient修饰的属性不会进行jvm默认的序列化操作,需要实现writeObject(java.io.ObjectOutputStream s)和readObject(java.io.ObjectInputStream s)方法查看全部
-
FileReader 和FileWriter适用于操作文件的,FileReader与FileWriter的用法与InputStreamReader和OutputStreamWriter类似,但是他们不能选择编码方式,因此对于与项目的编码方式不同的文本文件用FileWriter读取是会出现乱码的。同时,FileWriter(filename,true)是一种可在原文件上追加写操作的构造方式查看全部
-
字符流过滤器: BufferdReader,可以读一行 BufferdWriter,可以写一行查看全部
-
序列化查看全部
-
子类能继承父类已经实现的序列化接口查看全部
举报
0/150
提交
取消