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

文件传输基础——Java IO流

难度入门
时长 2小时 0分
学习人数
综合评分9.67
669人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • 递归操作
    查看全部
    0 采集 收起 来源:遍历目录

    2016-10-07

  • 字符流的过滤器 BufferedReader---->readLine不识别换行符 BufferedWriter/PrintWriter---->write public static void main(String[] args) throws IOException { // 对文件进行读操作,套接流,需要套在节点流上 BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream("F:\\IO流\\Buffered/br.txt"))); // 使用BufferedWriter对文件进行写操作 BufferedWriter bw = new BufferedWriter(new OutputStreamWriter( new FileOutputStream("F:\\IO流\\Buffered/bw.txt"))); // 使用PrintWriter对文件进行写操作 PrintWriter pw = new PrintWriter("F:/IO流/Buffered\\pw.txt"); bw.append("我是使用Buffered方法写入的"); pw.append("我是使用Print方法写入的"); String line; while ((line = br.readLine()) != null) { // 一次读一行,并不能识别换行符,输出时可以加上ln System.out.println(line); bw.write(line); // 单独写出换行 bw.newLine(); bw.flush(); pw.println(line); pw.flush(); } br.close(); bw.close(); pw.close(); }
    查看全部
  • InputStreamReader和OutputStreamWriter的使用 public static void main(String[] args) throws IOException { // 读出文件内容 使用默认编码方式,其他编码方式可加在文件路径后面加上用双引号括起来 InputStreamReader isr = new InputStreamReader(new FileInputStream( "F:\\IO流\\IsrAndOsw\\isr.txt"),"gbk"); // 写入文件内容 OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream( "F:\\IO流\\IsrAndOsw\\osw.txt")); //覆盖写入 osw.write("你好"); //不覆盖写入,加入后面 osw.append("世界"); // 一次读取一个字符 /*int c; while ((c = isr.read()) != -1) { System.out.print((char) c); }*/ char[] buffer = new char[1024]; // 批量读取,放入buffer这个字符数组 while ((isr.read(buffer)) != -1) { osw.write(buffer); osw.flush(); } isr.close(); osw.close(); }
    查看全部
  • 字符流2
    查看全部
  • 字符流1
    查看全部
  • bos.flush();//刷新缓冲区
    查看全部
    0 采集 收起 来源:字节缓冲流

    2016-10-06

  • 字节流之文件输入流FileOutputStream操作 /** * 单字节,不带缓冲进行文件拷贝 * @param srcFile * @param destFile * @throws IOException */ public static void copyFileByByte(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); int c ; while((c = in.read())!=-1){ out.write(c); out.flush(); } in.close(); out.close(); }
    查看全部
    0 采集 收起 来源:字节缓冲流

    2018-03-22

  • BufferedInputStream/BufferedOutputStream操作 /** * 进行文件的拷贝,利用带缓冲的字节流 * @param srcFile * @param destFile * @throws IOException */ 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){//非单个字节读取,一次性读一定的内容(填满缓冲区大小为止,默认8M大小) bos.write(c); bos.flush();//刷新缓冲区,一定要写,否则写入不进去;Ps:读取的时候无需flush,写入的时候最好要或有些地方一定要flush。 } bis.close(); bos.close(); }
    查看全部
    0 采集 收起 来源:字节缓冲流

    2018-03-22

  • 字节流之文件输入流FileInputStream、输出流FileOutputStream简介 II 7)DataOutputStream/DataInputStream 对"流"功能的扩展,可以更加方面的读取int,long,字符等类型数据 DataOutputStream writeInt()/writeDouble()/.../writeUTF()【采用utf-8编码写出】/writeChars()【采用utf-16be编码写出】 DataInputStream readLong()/.../readUTF() 8)BufferedInputStream&BufferedOutputStream 这两个流类位IO提供了带缓冲区的操作,一般打开文件进行写入 或读取操作时,都会加上缓冲,这种流模式提高了IO的性能 从应用程序中把输入放入文件,相当于将一缸水倒入到另一个缸中: FileOutputStream--->write()方法相当于一滴一滴地把水“转移”过去 DataOutputStream--->writeXxx()方法 或 FileOutputStream--->write()“包装(批量)”方法会方便一些,相当于一瓢一瓢把水“转移”过去 BufferedOutputStream--->write()方法更方便,相当于一瓢一瓢先放入桶(缓冲区)中,再从桶中倒入到另一个缸中,性能提高了
    查看全部
    0 采集 收起 来源:字节缓冲流

    2018-03-22

  • DataOutputStream/DataInputStream操作 I public static void main(String[] args) throws IOException { String file = "demo/dos.dat"; DataOutputStream dos = new DataOutputStream( new FileOutputStream(file)); dos.writeInt(10); dos.writeInt(-10); dos.writeLong(10l); dos.writeDouble(10.5); //采用utf-8编码写出 dos.writeUTF("中国"); //采用utf-16be编码写出 dos.writeChars("中国"); dos.close(); IOUtil.printHex(file); } public static void main(String[] args) throws IOException{ // TODO Auto-generated method stub String file = "demo/dos.dat"; IOUtil.printHex(file); DataInputStream dis = new DataInputStream( new FileInputStream(file)); int i = dis.readInt(); System.out.println(i); i = dis.readInt(); System.out.println(i); long l = dis.readLong(); System.out.println(l); double d = dis.readDouble(); System.out.println(d); String s = dis.readUTF(); System.out.println(s); dis.close(); }
    查看全部
  • copyFile()
    查看全部
  • 单字节读取不适合大文件,批量读取对大文件而言效率高
    查看全部
  • 通过缓存方式读取
    查看全部
  • FileInputStream读写16进制流
    查看全部
  • 字节流1
    查看全部

举报

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

微信扫码,参与3人拼团

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

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