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

文件传输基础——Java IO流

难度入门
时长 2小时 0分
学习人数
综合评分9.67
669人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • 在中文机上创建的文本默认为ANSI编码,但它认识其他中文编码,如gbk,utf-8等。创建一个java工程改变编码方式为utf-8,若把文件复制到gbk编码的java工程里会出现乱码,但若是复制文件里的内容就不会出现乱码。也即编码方式要一致
    查看全部
    0 采集 收起 来源:文件的编码

    2015-09-03

  • 序列化过程中子父类构造函数调用问题 (1)一个类实现了序列化接口,那么其子类都可以进行序列化 (2)一、父类实现了serializable接口,子类继承就可序列化。 1、子类在反序列化时,父类实现了序列化接口,则不会递归调用其构造函数。 二、父类未实现serializable接口,子类自行实现可序列化 2、子类在反序列化时,父类没有实现序列化接口,则会递归调用其构造函数。 【反序列化时】,向上递归调用构造函数会从【可序列化的一级父类结束】。即谁实现了可序列化(包括继承实现的),谁的构造函数就不会调用。 1、子类在反序列化时,其父类实现了序列化接口,则不会递归调用他们的构造函数。 2、若父类没有实现serializable接口,其子类自行实现反序列化,递归调用其构造函数 结论:反序列化时,谁实现了可序列化(包括继承实现的),谁的构造函数就不会调用。
    查看全部
  • 分析ArrayList源码中序列化和反序列化的问题!!!
    查看全部
  • 序列化: transient 关键字:被transient修饰的元素,该元素不会进行jvm默认的序列化,但可以自己完成这个元素的序列化 注意: (1)在以后的网络编程中,如果有某些元素不需要传输,那就可以用transient修饰,来节省流量;对有效元素序列化,提高性能。 (2)可以使用writeObject自己完成这个元素的序列化。ArrayList就是用了此方法进行了优化操作。ArrayList最核心的容器Object[] elementData使用了transient修饰,但是在writeObject自己实现对elementData数组的序列化。只对数组中有效元素进行序列化。readObject与之类似。 (3)java.io.ObjectOutputStream.defaultWriteObject(); // 把jvm能默认序列化的元素进行序列化操作 java.io.ObjectOutputStream.writeInt(age);// 自己完成序列化 (4) java.io.ObjectOutputStream.defaultReadObject();// 把jvm能默认反序列化的元素进行反序列化 this.age = java.io.ObjectOutputStream.readInt(); // 自己完成age的反序列化操作
    查看全部
  • (1)对象的序列化 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file)); Student stu = new Student("10001","张三",20); oos.writeObject(stu); oos.flush(); oos.close(); (2)对象的反序列化 ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file)); Student stu = (Student)ois.readObject(); System.out.println(stu); ois.close();
    查看全部
  • 文件传输基础 6--1 序列化基本操作 对象的序列化,反序列化 (1)对象序列化:将Object转换成 byte序列,反之叫对象的反序列化 (2)序列化流(ObjectOutputStream),是过滤流------writeObject 反序列化流(ObjectInputStream)----readObject (3)序列化接口(Serializable) 对象必须实现序列化接口,才能进行序列化,否则将出现异常 这个接口,没有任何方法,只是一个标准
    查看全部
  • (1)相比 PrintWriter pw = new PrintWriter("e:\\javaio\\imooc.txt"); 方便很多 (2)PrintWriter pw1 = new PrintWriter(outputStream,boolean autoFlush); // 输出流,自动刷新
    查看全部
  • BufferedReader -- > readLine -> 读一行 不识别换行符,不会自动换行 BufferedWriter/PrintWriter -- > writeLine/println -> 写一行,不会自动换行/自动换行 在文件中换行,可以用newLine();实现 BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("e:\\javaio\\imooc.txt"))); // 使用 readLine 函数
    查看全部
  • FileReader/FileWriter:可以直接写文件名的路径。与InputStreamReader相比坏处:无法指定读取和写出的编码,容易出现乱码。只能读取与项目编码方式相同的文件 FileReader fr = new FileReader("e:\\javaio\\imooc.txt"); //输入流 FileWriter fw = new FileWriter("e:\\javaio\\imooc2.txt");//输出流
    查看全部
  • InputStream、OutputStream 抽象了应用程序读写数据方式(父类,抽象类) FileInputStream、FileOutputStream (子类) EOF=End 及文件结尾(读到-1)(is.read()=-1) 输入流基本方法 read(); 输入流基本方法 int b=in.read();读取一个字节无符号填充到int的低八位,前面的24位补零。(int是32位,一个字节8位)-1是EOF in.read(byte[] buf);读取数据填充到字节数组buf in.read(byte[] buf,int start,int size),同上,从buf的start位置开始存放size长度的数据 输出流基本方法 out.write(int b) 写出一个byte到流,b的低八位 out.write(byte][] buf) 将buf字节数组都写入到流 out.write(byte[] buf,int start,int size);同上,详见read对应方法 FileInputStream 具体实现了文件上读取数据
    查看全部
  • 缓冲需要flush
    查看全部
    0 采集 收起 来源:字节缓冲流

    2015-09-02

  • BufferedInputStream
    查看全部
    0 采集 收起 来源:字节缓冲流

    2015-09-02

  • RandomAccessFile java提供的对文件的访问,即可读文件,也可写文件 RandomAccessFile支持随机访问文件,可以访问文件的任意位置 java文件模式 在硬盘的文件是byte byte byte 存储的,是数据的集合 打开文件 : rw 读写 r只读 RandomAccessFile raf = new RandomAccessFile(file,"rw");//要指定读写方式 文件指针,打开文件时指针在开头pointer = 0;随着读写操作指针后移 写方法 raf.write(int)只写一个字节(后八位)同时指针指向下一个字节位置准备下一次写入 读方法 int b=raf.read()读一个字节 文件读写完成之后一定要关闭:raf.close();
    查看全部
  • DataOutputStream / DataInputStream 对“流”功能的扩展,可以更加方便的读取int,long,字符等类型数据DataOutputStream writeInt() / writeDouble() / writeUTF() DataOutputStream dos = new DataOutputStream(new FileOutputStream(file));
    查看全部
  • file.list() 返回的是 字符串数组 直接子的名称,不包含子目录下的内容 file.listFiles() 返回当前目录下的所有子目录和文件的文件数组名称 File[] files = dir.listFiles();//返回的是直接子目录(文件)的抽象 if (file!=null && files.length > 0){ for(File file:files){ if(file.isDrectory()){ listDirectory(file); }else{ System.out.println(file); } } }
    查看全部
    0 采集 收起 来源:遍历目录

    2018-03-22

举报

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

微信扫码,参与3人拼团

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

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