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

文件传输基础——Java IO流

难度入门
时长 2小时 0分
学习人数
综合评分9.67
669人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • 逐个字节拷贝 public static void copyFileByByte(File srcFile, File destFile) throws IOException { if(!srcFile.exists()) throw new IllegalArgumentException("文件不存在"); if(!srcFile.isFile()) throw new IllegalArgumentException("不是文件"); //接下来看着,读是读,写是写,各司其职 FileInputStream in = new FileInputStream (srcFile); FileOutputStream out = new FileOutputStream (destFile); int b = 0; while((b = in.read())!=-1) { out.write(b); out.flush(); //不是使用缓冲输入流 这里 就可有可无 } in.close(); out.close(); } 通过比较这么集中用的时间可以发现,逐个字节是最浪费时间的,批量读入是最快的,但实际中的性能不是很好。比较折中的是使用第二种使用缓冲字节流进行拷贝
    查看全部
    0 采集 收起 来源:字节缓冲流

    2018-03-22

  • 自定义缓冲数组一次性读入 public static void copyFile(File srcFile, File destFile) throws IOException { if(!srcFile.exists()) //判断要拷贝的源文件是不是存在 throw new IllegalArgumentException("源文件"+srcFile.getName()+"不存在"); 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); out.flush(); //这个方法是从OutputStream中继承而来的,不加也行,最好是用上 } in.close(); out.close(); }
    查看全部
    0 采集 收起 来源:字节缓冲流

    2018-03-22

  • 使用BufferedInputStream和BufferedOutputStreaem做文件拷贝 经典程序段 public static void copyFileBuffer(File srcFile, File destFile)throws IOException { if(!srcFile.exists()) throw new IllegalArgumentException("文件不存在"); if(!srcFile.isFile()) throw new IllegalArgumentException("不是文件"); BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile)); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(destFile)); //使用的就是 BufferedInputStream 这个类自身维护的有一个 buf数组缓冲区所以这里我们不需要再定音buf int c; while((c = bis.read())!=-1) { bos.write(c); bos.flush(); //注意这个表示刷新缓冲区 在 Buffered.. } bis.close(); bos.close(); }
    查看全部
    0 采集 收起 来源:字节缓冲流

    2018-03-22

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

    2015-11-08

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

    2015-11-08

  • byte[] gbk = "中国".getBytes(); //还可以直接这样用 IllegalArgumentsException 非法传递参数异常
    查看全部
  • 复制文件内容
    查看全部
  • 复制文件例子
    查看全部
  • 循环利用byte数组
    查看全部
  • transient关键字
    查看全部
  • 什么是序列化
    查看全部
  • 把一个字符串转化成字节数组,代码如下: String s="你好世界" char[] shuzu=s.
    查看全部
    0 采集 收起 来源:文件的编码

    2018-03-22

  • RandomAccessFile的使用: 1.java提供的对文件内容的访问,可读写,可的访问文件的任意位置 2.打开文件RandomAccessFile raf=new RandomAccessFile(file,"rw"); 3.写的方法(fil,write(int)-----> raf.只写一个字节,同时指针指向下一个位置,准备再次写入 4.读-->int b=raf.read();读一个字节 5.关闭
    查看全部
  • I/O输入输出流 编码问题:打开文件夹出现乱码 String c="我爱慕课"; byte[] ba=c.getBytes();//字节 for(byte bb:ba){ //把字节(转换成int)以16进制的方式显示 System.out.print(Integer.toHexString(bb & 0xff)+" "); } //设置成目标编码 byte[] ba=c.getBytes("gbk"); 此时可能有异常,所以使用异常接口 java是双字节编码【utf-16be中英文占用两个字节】 在电脑上直接创建的文本文件默人、认ANSI编码,所以..乱码
    查看全部
    0 采集 收起 来源:文件的编码

    2018-03-22

  • File类的使用: 1.File常用类API介绍 java.io.Fail类用于表示文件的(目录) File类只用于表示文件(目录)的信息(名称,大小),不能用于文件内容的访问 //创建文件 File file=new File("E:\\javaio"); //判断是否存在 file.exists(); //创建文件 file.mkdir(); //创建文件多级目录 file.mkdirs(); //删除文件 file.delete(); //是否是一个目录 file.isDirectory(); //是否是一个文件 file.isFile(); //创建一个文件 【File file=new File("E:\\javaio\\1.txt"); 或者用File file=new File("E:\\javaio","1.txt");】 【//打印目录路径或说file.toString()的内容 System.out.println(file); 或者为:System.out.println(file.getAbsolutePath()); System.out.println(file。getName());】 【//打印文件路径或说file.toString()的内容 System.out.println(file.getParent()); 或者为:System.out.println(file.getAbsolutePath());】 2.使用 //列出指定目录下(包括子目录)的所有文件list()方法 if(file.exists()){....} if(!file.isDirectory){...} String[] filename=file.list(); for(String name:filename){ System.out.println(name+"\\"+String); } //列出指定目录下(包括子目录)的所有文件路径 File[] files=file.listFile(); 采用递归打印子目录
    查看全部
    0 采集 收起 来源:遍历目录

    2018-03-22

举报

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

微信扫码,参与3人拼团

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

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