-
s.toHexString();查看全部
-
对象的序列化和反序列化简介 I 3.对象的序列化,反序列化 1)对象序列化,就是将Object转换成byte序列,反之叫对象的反序列化 2)序列化流(ObjectOutputStream),是过滤流----writeObject 反序列化流(ObjectInputStream)----readObject 3)序列化接口(Serializable) 对象必须实现序列化接口 ,才能进行序列化,否则将出现异常 这个接口,没有任何方法,只是一个标准 4)transient关键字 private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException private void readObject(java.io.ObjectInputStream s) throws java.io.IOException, ClassNotFoundException 分析ArrayList源码中序列化和反序列化的问题 5)序列化中,子类和父类构造函数的调用问题 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
序列化中子父类构造函数问题 II 代码如下 II: class Foo implements Serializable{ public Foo(){ System.out.println("foo..."); } } class Foo1 extends Foo{ public Foo1(){ System.out.println("foo1..."); } } class Foo2 extends Foo1{ public Foo2(){ System.out.println("foo2..."); } } class Bar{ public Bar(){ System.out.println("bar"); } } class Bar1 extends Bar{ public Bar1(){ System.out.println("bar1.."); } } class Bar2 extends Bar1 implements Serializable{ public Bar2(){ System.out.println("bar2..."); } } 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
序列化中子父类构造函数问题 I Ps1:一个类实现了序列化接口,那么其子类都可以进行序列化。 Ps2:对子类对象进行反序列化操作时,如果其父类没有实现序列化接口,那么其父类的构造函数会被调用,否则父类的构造函数不会被调用。总而言之,有序列化功能的类的构造函数不会被调用。 代码如下 I: public class ObjectSeriaDemo2 { public static void main(String[] args) throws Exception{ /*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();*/ /*ObjectOutputStream oos = new ObjectOutputStream( new FileOutputStream("demo/obj1.dat")); Bar2 bar2 = new Bar2(); oos.writeObject(bar2); oos.flush(); oos.close();*/ ObjectInputStream ois = new ObjectInputStream( new FileInputStream("demo/obj1.dat")); Bar2 bar2 = (Bar2)ois.readObject(); System.out.println(bar2); ois.close(); } }查看全部
-
向缓冲区写入数据查看全部
-
BufferedStream的应用实例查看全部
-
DataOutputStream的用法实例查看全部
-
write每次只能写八位,int类型的要写四次查看全部
-
序列化基本操作 I public static void main(String[] args) throws Exception{ String file = "demo/obj.dat"; //1.对象的序列化 /*ObjectOutputStream oos = new ObjectOutputStream( new FileOutputStream(file)); Student stu = new Student("10001", "张三", 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(); } Ps:注意注意注意,public class Student implements Serializable{...},别忘了实体类实现接口序列号。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
序列化中子父类构造函数问题 1、一个类实现了序列化接口,则其子类可以直接序列化,且构造函数会被递归调用 2、对子类对象进行反序列化操作时,如果其父类没有实现序列化接口那么其父类的构造函数会被调用查看全部
-
transient关键字 1)一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问。 2)transient关键字只能修饰变量,而不能修饰方法和类。注意,本地变量是不能被transient关键字修饰的。变量如果是用户自定义类变量,则该类需要实现Serializable接口。 3)被transient关键字修饰的变量不再能被序列化,一个静态变量不管是否被transient修饰,均不能被序列化。 4)但可以通过writeObject和readObject自己完成序列化和反序列化查看全部
-
//常用的File对象的API File file = new File("E:\\javaio\\imooc"); File file2 = new File("e:\\javaio","日记1.txt"); System.out.println(file);//file.toString()的内容//E:\javaio\imooc System.out.println(file.getAbsolutePath());//E:\javaio\imooc System.out.println(file.getName());//imooc System.out.println(file2.getName());//日记1.txt System.out.println(file.getParent());//E:\javaio System.out.println(file2.getParent());//e:\javaio System.out.println(file.getParentFile().getAbsolutePath());//E:\javaio查看全部
-
字符流简介 I 2.字符流 1) 编码问题 2)认识文本和文本文件 java的文本(char)是16位无符号整数,是字符的unicode编码(双字节编码) 文件是byte byte byte ...的数据序列 文本文件是文本(char)序列按照某种编码方案(utf-8,utf-16be,gbk)序列化为byte的存储结果 3)字符流(Reader Writer)---->操作的是文本/文本文件 字符的处理,一次处理一个字符 字符的底层任然是基本的字节序列 字符流的基本实现 InputStreamReader 完成byte流解析为char流,按照编码解析 OutputStreamWriter 提供char流到byte流,按照编码处理 FileReader/FileWriter 字符流的过滤器 BufferedReader ---->readLine 一次读一行 BufferedWriter/PrintWriter ---->写一行 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
字符流的过滤器操作 I public static void main(String[] args) throws IOException{ //对文件进行读写操作 BufferedReader br = new BufferedReader( new InputStreamReader( new FileInputStream("e:\\javaio\\imooc.txt"))); /*BufferedWriter bw = new BufferedWriter( new OutputStreamWriter( new FileOutputStream("e:\\javaio\\imooc3.txt")));*/ PrintWriter pw = new PrintWriter("e:\\javaio\\imooc4.txt"); //PrintWriter pw1 = new PrintWriter(outputStream,boolean autoFlush);//第二个参数若为true,则下面的pw.flush();可以注释掉 String line ; while((line = br.readLine())!=null){ System.out.println(line);//一次读一行,并不能识别换行 /*bw.write(line); //单独写出换行操作 bw.newLine();//换行操作 bw.flush();*/ pw.println(line);//单行写入+换行操作;去掉“ln”则不换行 pw.flush(); } br.close(); //bw.close(); pw.close(); } Ps1:PrintWriter较BufferedWriter更多容易使用; Ps2:new InputStreamReader(new FileInputStream("e:\\javaio\\imooc.txt"));等价于new FileReader("e:\\javaio\\imooc.txt");。查看全部
举报
0/150
提交
取消