为了账号安全,请及时绑定邮箱和手机立即绑定

文件传输基础——Java IO流

难度入门
时长 2小时 0分
学习人数
综合评分9.67
669人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • s.toHexString();
    查看全部
    0 采集 收起 来源:文件的编码

    2016-01-30

  • 对象的序列化和反序列化简介 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(); } }
    查看全部
  • 向缓冲区写入数据
    查看全部
    0 采集 收起 来源:字节缓冲流

    2016-01-30

  • BufferedStream的应用实例
    查看全部
    0 采集 收起 来源:字节缓冲流

    2016-01-30

  • 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
提交
取消
课程须知
亲,为了更好的学习本门课程,需要您对二进制的知识有所了解,还要熟悉Java的基本语法和面向对象的知识。
老师告诉你能学到什么?
1、了解文件编码。 2、能够对文件和目录进行管理操作。 3、能够应用字节流和字符流对文件进行读写操作。 4、能够对对象进行序列化和反序列化。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!