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

文件传输基础——Java IO流

难度入门
时长 2小时 0分
学习人数
综合评分9.67
669人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • 字节转字符有编码问题 这里默认是GBK编码 也可以通过构造函数限定为UTF-8等编码
    查看全部
  • 有缓冲区 要flush刷新 否则写不出去
    查看全部
    0 采集 收起 来源:字节缓冲流

    2016-06-16

  • public static void main(String[] args)throws IOException { FileInputStream in = new FileInputStream("e:\\javaio\\imoocutf8.txt"); InputStreamReader isr = new InputStreamReader(in,"utf-8");//默认项目的编码,操作的时候,要写文件本身的编码格式 FileOutputStream out = new FileOutputStream("e:\\javaio\\imoocutf81.txt"); OutputStreamWriter osw = new OutputStreamWriter(out,"utf-8"); /*int c ; while((c = isr.read())!=-1){ System.out.print((char)c); }*/ char[] buffer = new char[8*1024]; int c; /*批量读取,放入buffer这个字符数组,从第0个位置开始放置,最多放buffer.length个 返回的是读到的字符的个数 */ while(( c = isr.read(buffer,0,buffer.length))!=-1){ String s = new String(buffer,0,c); System.out.print(s); osw.write(buffer,0,c); osw.flush(); } isr.close(); osw.close(); }
    查看全部
  • 1.Java的文本(char)是16位无符号整数,是字符的unicode编码(双字节编码) 文件是byte byte...的数据序列 文本文件是文本(char)序列按照某种编码方案(utf-8,utf-16be,gbk)序列化为byte的存储结构 2.字符流(Reader / Writer) -- > 操作的大多是文本文件;默认按照项目的编码解析 字符的处理,一次处理一个字符;字符底层任然是基本的字节序列 3.字符流的基本实现 InputStreamReader 完成byte流解析为char流,按照编码解析 OutputStreamWriter 提供char流到byte流,按照编码处理
    查看全部
  • 后面两种 装饰者模式 有缓冲功能 DataOutputStream的writeXxx指writeInt等方法
    查看全部
    0 采集 收起 来源:字节缓冲流

    2016-06-16

  • 实质就是与运算得到交集,且全与1得到原来的低八位
    查看全部
  • 用read方法一起性读取指针之后的内容,返回一个字节数组
    查看全部
  • /** *BufferedInputStream&BufferedOutputStream为IO提供了带缓冲区的操作,提高了IO的性能 * 进行文件的拷贝,利用带缓冲的字节流 */ public static void copyFileByBuffer(File srcFile,File destFile)throws IOException{ if(!srcFile.exists()){ throw new IllegalArgumentException("文件:"+srcFile+"不存在"); } if(!srcFile.isFile()){ throw new IllegalArgumentException(srcFile+"不是文件"); } BufferedInputStream bis = new BufferedInputStream( new FileInputStream(srcFile)); BufferedOutputStream bos = new BufferedOutputStream( new FileOutputStream(destFile)); int c ; while((c = bis.read())!=-1){ bos.write(c); bos.flush();//刷新缓冲区 } bis.close(); bos.close(); }
    查看全部
    0 采集 收起 来源:字节缓冲流

    2018-03-22

  • 一、DataOutputStream/DataInputStream 对“流”功能的扩展,可以更加方便的读取 int,long, 字符等类型数据 二、数据输入输出流: DataOutputStream dos = new DataOutputStream(new FileOutputStream(file)); dos.writeInt(10); dos.writeLong(10L); dos.writeDouble(10.5); //采用utf-8编码写出 dos.writeUTF("中国"); //采用utf-16be编码写出 dos.writeChars("中国");
    查看全部
  • 序列化过程中子父类构造函数问题 一、父类实现了serializable接口,子类继承就可序列化。 1、子类在反序列化时,父类实现了序列化接口,则不会递归调用其构造函数。 二、父类未实现serializable接口,子类自行实现可序列化 2、子类在反序列化时,父类没有实现序列化接口,则会递归调用其构造函数。 *** 结论:【反序列化时】,向上递归调用构造函数会从【可序列化的一级父类结束】。即谁实现了可序列化(包括继承实现的),谁的构造函数就不会调用。
    查看全部
  • 序列化
    查看全部
  • isDirectory()判断是不是目录
    查看全部
    0 采集 收起 来源:遍历目录

    2016-06-15

  • /** * 文件拷贝,字节批量读取 */ public static void copyFile(File srcFile,File destFile)throws IOException{ if(!srcFile.exists()){ throw new IllegalArgumentException("文件:"+srcFile+"不存在"); } if(!srcFile.isFile()){ throw new IllegalArgumentException(srcFile+"不是文件"); } FileInputStream in = new FileInputStream(srcFile); FileOutputStream out = new FileOutputStream(destFile); byte[] buf = new byte[8*1024]; int b ; while((b = in.read(buf,0,buf.length))!=-1){ out.write(buf,0,b); out.flush();//最好加上 } in.close(); out.close(); }
    查看全部
  • //文件不存在,直接创建,存在,删除后建 FileOutputStream out = new FileOutputStream("demo/out.dat"); //文件不存在,直接创建,存在,追加内容 //FileOutputStream out = new FileOutputStream("demo/out.dat","ture");
    查看全部
  • 对象的序列化和 反序列化
    查看全部

举报

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

微信扫码,参与3人拼团

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

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