-
transient 关键字:被transient修饰的元素,该元素不会进行jvm默认的序列化,但可以自己完成这个元素的序列化 注意:(1)在以后的网络编程中,如果有某些元素不需要传输,那就可以用transient修饰,来节省流量;对有效元素序列化,提高性能。 (2)可以使用writeObject自己完成这个元素的序列化。ArrayList就是用了此方法进行了优化操作。ArrayList最核心的容器Object[] elementData使用了transient修饰,但是在writeObject自己实现对elementData数组的序列化。只对数组中有效元素进行序列化。readObject与之类似。查看全部
-
6--1 序列化基本操作 对象的序列化,反序列化 (1)对象序列化:将Object转换成 byte序列,反之叫对象的反序列化 (2)序列化流(ObjectOutputStream),是过滤流------writeObject 反序列化流(ObjectInputStream)----readObject (3)序列化接口(Serializable) 对象必须实现序列化接口,才能进行序列化,否则将出现异常 这个接口,没有任何方法,只是一个标准查看全部
-
字符流 之字符流的过滤器 除了具有基本的读写单个字外,更具有加强功能,可以一次性的读写一行。可以参见帮助文档,文档中的介绍更加详细,介绍到字符流的顾虑器,优化了一般的Reader的巨大开销。<br> Bufferedreader-->readLine()<br> BufferedWriter/PrintWriter 可以实现一次写一行 /**其构造需要双层的嵌套 * 看看下面是一个多么恶心的嵌套,FileReader 是对一个 Reader 进行过滤 所以,构造式需要传进来一个Reader,(我们知道Reader是一个抽象类,我们只能使用起实现子类) * 我们有知道,用的是Reader的实现子类 InputStreamReader,而InputStreamReader它有需要一个InputStream,我们最常用的 * InputStream的实现子类是FileInputStream,因为我们这里也是对文件进行操作 */ BufferedReader br = new BufferedReader( new InputStreamReader( new FileInputStream("e:\\Jworkspace\\code.txt"))); BufferedWriter bw = new BufferedWriter( new OutputStreamWriter( new FileOutputStream("e:\\Jworkspace\\code2.txt"))); String line; while((line = br.readline())!=null) //一次读一行 { System.out.println(line); //一次读一行不支持换行, 必须使用println bw.write(line); //必须要单独写出黄航 bw.newLine(); bw.flush(); } br.close(); bw.close查看全部
-
transient 也是可以序列化的,只不过要自己实现。 private void writeObject(ObjectOutputStream os)throws IOException{ os.defaultWriteObject(); os.writeInt(transient修饰的属性,并且为int类型); }查看全部
-
2、字符流 1)编码问题 前已述及 起码有一点要非常清楚的是,一切进入计算机的都会变成字节码 2)认识文本和文本文件 java中的文本(其实就是char)16位的无符号整数,是字符的unicode编码(这是一种双自己编码) 文件是byte byte byte...的数据集合,可以缩句来理解 文件输数据集合。字节流的编码方式和序列化规则不一样就形成了不同的文件:文本文件,音频文件,视频文件等 文本文件是文本(char的编码)序列按照某种编码方案(utf-8,utf-16be,gbk)序列化为byte的数据存储集合 (3)字符流 抽象类 Reader Writer 二者实现了数据的两种相互转换,存储时我们用字节码的形式存储,读入计算机内存处理(包括显示,运算等)是用字符(ABC...)的形式。 字符的处理,一次处理一个字符。其底层仍然是基本的字节序列 字符流的基本实现 InputStreamReader 完成byte流解析为char流,按照编码接卸 OutputStreamWriter 提供char流到byte流,按照编码处理。 为什么上面特别说明了一下文本文件,因为字符流大部分操作的都是文本文件。毕竟文本文编,以编码的方式不容易认读,我们才把字符编码解析为字符。如果Reader一个MP3之类的音频文件,根本就没有什么意义,因为,声音本来就不是用来看的,所以说字符流主要是用于处理文本文件的查看全部
-
transient关键字可以让jvm不默认序列化对象属性 序列化就是把对象转化为byte字节储存,反序列化与之相反,在网络通讯中有运用查看全部
-
ArrayList方法的使用查看全部
-
对象的反序列化查看全部
-
对象的序列化查看全部
-
用printWriter的方法直接构造 写出文件查看全部
-
BufferedWriter写入文件的内容查看全部
-
用BufferedReader(一次读取一行)的方法读取文件并显示在控制台查看全部
-
FileReader和FileWriter进行文件的读写!查看全部
-
数组方式运用字符流读取文件查看全部
-
字符流读取文件内容到控制台(inputstreamReader)查看全部
举报
0/150
提交
取消