-
是不会jvm默认的序列化,但可以自己序列化查看全部
-
transient定义变量不会被序列化查看全部
-
//Student implements Serializable String file = "demo/obj.dat"; //1.对象的序列化 ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream(file)); Student stu = new Student("1001","张三",20); oos.writeObject(stu); oos.flush(); oos.close(); //反序列化 ObjectInputStream ois=new ObjectInputStream(new FileInputStream(file)); Student stu = (Student)ois.readObject(); System.out.println(stu); ois.close();查看全部
-
Buffered/FileWriter 字符流的过滤器 BufferedReader --> readLine 一次读已行 BufferedWriter/PrintWriter --> write()写一行查看全部
-
Java文本是16位无符号整数,是字符的unicode编码 文件是byte的数据序列 文本文件是文本序列按照某种编码序列化为BYte的存储结果查看全部
-
java.io.File类用于表示文件(目录) File类只用于表示文件(目录)的信息(名称、大小等),不能用于文件内容的访问。 创建File对象 File file = new File("E:\\javaio");//注意“\”的转义用"\"。 file.exists();判断文件是否存在,返回boolean类型 file.mkdir();创建文件 file.mkdirs();建多级目录 file.delete();删除目录 file.isDirectory();判断是否是目录,是目录返回true,不是或者不存在都返回false file.isFile();判断是否是一个文件 file.createNewFile();创建文件,会产IO异常 直接打印file其实是调用file.toString()的内容,和打印file.getAbsolutePath()内容相同。 file.getName();获得文件的名字 file.getParent();获得父目录查看全部
-
我理解的过滤是,对于BufferedReader的readLine方法,遇到换行符就输出缓冲区的内容。因此过滤掉的是换行符查看全部
-
序列化过程中子父类构造函数问题 一、父类实现了serializable接口,子类继承就可序列化。 1、子类在反序列化时,父类实现了序列化接口,则不会递归调用其构造函数。 二、父类未实现serializable接口,子类自行实现可序列化 2、子类在反序列化时,父类没有实现序列化接口,则会递归调用其构造函数。 *** 结论:【反序列化时】,向上递归调用构造函数会从【可序列化的一级父类结束】。即谁实现了可序列化(包括继承实现的),谁的构造函数就不会调用。查看全部
-
注意:在以后的网络编程中,如果有某些元素不需要传输,那就可以用transient修饰,来节省流量;对有效元素序列化,提高性能。查看全部
-
transient:该元素不会进行jvm默认的序列话,也可以自己完成这个元素的序列化查看全部
-
对象序列化和反序列化 1、对象序列化就是将Object转换成byte序列,反之叫对象的反序列化 2、序列化流(ObjectOutputStream),是过滤流 反序列化流(ObjectInputStream)-->readObject 3、序列化接口(Serializable) 对象必须实现序列化接口,才能进行序列化,否则将出现异常 这个接口,没有任何方法,只是一个标准查看全部
-
java.io.file 类用于表示文件(目录) 之表示文件信息。不不能访问内容。 File file=new File(目录) 这里要把\变成\\ if(!file.exists()){判断是否存在 file.separator 设置分割符 file.mkdir() 创建文件。 file.mkdirs()创建多久目录 else file.delete() 删除目录 file.isDirectry(),p判断是不是目录。是返回true,不是或不存在返回false file.isFile() file.createNewFile()创建文件 file.getparent ()父类目录查看全部
-
String s="慕课ASD"; //字符串转为byte Byte[] bytes1=s.getByte(); for(){ //打印字节。把字节转换为16为整型。 &oxff 去掉前面的,只留八位 system.out.print(Inter.toHexString(b&oxff)) } 系统默认jbk编码 byte[] b1=s.getByte("jbk") 转换城jbk格式字符 结果,一个中午占俩个字节,一个英文占一个字节 utf-8 中午占3个字节,英文占一个 utf-16be 中文占俩,英文俩 字节序列转换字符串也需要编码方式,否则乱码 String str1=new String(byte1,"utf-8") 文本文件就是字节序列,可以是任意字节序列。中文只认ansi 编码代表CBK编码查看全部
-
对子类对象进行反序列化操作时,如果其父类没有实现序列化接口,那么其父类的构造函数会显式被调用查看全部
-
序列化中子类和父类构造函数调用问题 父类实现序列化接口,其子类都可以进行序列化 calss Foo implements Serializable{ public Foo(){ System.out.pritln("Foo"); } } class Foo1 ectends Foo{ public Foo1(){ System.out.println("foo1"); } } class Foo2 ectends Foo1{ public Foo2(){ System.out.println("foo2"); } } //序列化 ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("demo/obj1.dat")); Foo2 foo2=new Foo2(); oos.writeObject(foo2); oos.flush(); oos.close(); //反序列化是否递归父类的构造函数 ObjectInputStream ois=new ObjectInputStream(new FileInputStream("demo/obj1.dat")); Foo2 foo2 = (Foo2)ois.readObject(); System.out.println(foo2); ois.close(); class Bar{ public Bar(){ System.out.println("bar"); } } class Bar1 ectends Bar implements Serializable{ public Bar1(){ System.out.println("bar1"); } } class Bar2 ectends Bar1{ public Bar2(){ System.out.println("bar2"); } }查看全部
举报
0/150
提交
取消