-
读入文件将其转换为16进制输出在控制台查看全部
-
使用transient关键字修饰的元素可以不进行序列化。 private transient String name;//name 不会被序列化查看全部
-
文件编码: 1.gbk:一个中文字符占两个字节,一个英文字符占一个字节,是转换成字节序列时的默认编码方式。 2.utf-8:一个中文字符占三个字节,一个英文字符占一个字节 3.utf-16be:java的编码方式,一个中文和一个英文字符都是占两个字节 4.字节序列转换成字符时要采用相同的编码方式,否则会乱码 5.文本文件就是字节序列,可以是任意编码的字节序列,但是如果直接在中文机器上创建文本文件,那么该文本文件只认识ansi编码查看全部
-
...查看全部
-
...查看全部
-
序列化过程中子父类构造函数问题 一、父类实现了serializable接口,子类继承就可序列化。 1、子类在反序列化时,父类实现了序列化接口,则不会递归调用其构造函数。 二、父类未实现serializable接口,子类自行实现可序列化 2、子类在反序列化时,父类没有实现序列化接口,则会递归调用其构造函数。 *** 结论:【反序列化时】,向上递归调用构造函数会从【可序列化的一级父类结束】。即谁实现了可序列化(包括继承实现的),谁的构造函数就不会调用。查看全部
-
序列化就是保存对象数据状态的。反序列化就是恢复对象数据状态的。 transient 关键字:被transient修饰的元素,该元素不会进行jvm默认的序列化,但可以自己完成这个元素的序列化查看全部
-
单字节读取不适合大文件,批量读取对大文件而言效率高。IO操作完成之后必须关闭。查看全部
-
2、序列化流(ObjectOutputStream),字节的过滤流 —— writeObject()方法 反序列化流(ObjectInputStream)—— readObject()方法 3、序列化接口(Serializable)查看全部
-
BufferedReader --->readLine 一次读一行 BufferedWriter/PrintWriter --->写一行 PrintWiter 和配合 BufferedReader 使用查看全部
-
字节,字符 utf-8中中文占三个字节,英文占一个字节 gbk中中英文都占两个字符查看全部
-
InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。 每次调用 InputStreamReader 中的一个 read() 方法都会导致从底层输入流读取一个或多个字节。要启用从字节到字符的有效转换,可以提前从底层流读取更多的字节,使其超过满足当前读取操作所需的字节。 为了达到最高效率,可要考虑在 BufferedReader 内包装 InputStreamReader。例如: BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节。它使用的字符集可以由名称指定或显式给定,否则将接受平台默认的字符集。 每次调用 write() 方法都会导致在给定字符(或字符集)上调用编码转换器。在写入底层输出流之前,得到的这些字节将在缓冲区中累积。可以指定此缓冲区的大小,不过,默认的缓冲区对多数用途来说已足够大。注意,传递给 write() 方法的字符没有缓冲。 为了获得最高效率,可考虑将 OutputStreamWriter 包装到 BufferedWriter 中,以避免频繁调用转换器。例如: Writer out = new BufferedWriter(new OutputStreamWriter(System.out));查看全部
-
复制文件最快的做法应该是批量读取到字节数组中然后使用缓冲输出流写入到文件。并且在循环写入的过程中不要flush,要不然就失去了缓冲的意义,因为缓冲输出流在关闭的时候会将所有缓冲区中的数据全部写入文件查看全部
-
文本文件是字节编码序列,可以是任意编码的字节序列,如果在中文机器上直接创建文本文件,只认识ANSI编码。查看全部
-
字节码序列用的是什么编码方式,转化为字符串时需要用同样的编码方式解码。查看全部
举报
0/150
提交
取消