package jonavin.io; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class IOUtil { /** * 文件拷贝-- 一个字节一个字节拷贝 * @param srcFile * @param destFile */ 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 b; while ((b = in.read()) != -1) { out.write(b);//写入一个字节的低八位 } in.close(); out.close(); } /** * 拷贝文件一次读取多个字节 */ public static void copyFileByByteBuf(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 b; byte[] buf = new byte[8*1024];//开辟8K的缓存 while ((b = in.read(buf,0,buf.length))!=-1) { out.write(buf, 0, b); } in.close(); out.close(); } /** * 通过缓冲流copy文件 * @throws IOException */ public static void copyFileByBuffed(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);//目标文件 BufferedInputStream inbuf = new BufferedInputStream(in); BufferedOutputStream outbuf = new BufferedOutputStream(out); int b; while ((b = inbuf.read())!=-1) { outbuf.write(b); } in.close(); out.close(); inbuf.close(); outbuf.close(); } /** * 通过缓冲流copy文件 缓冲流一次读取多个字节 * @throws IOException */ public static void copyFileByBuffedBuf(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);//目标文件 BufferedInputStream inbuf = new BufferedInputStream(in); BufferedOutputStream outbuf = new BufferedOutputStream(out); int b; byte[] buf = new byte[8*1024]; while ((b = inbuf.read(buf,0,buf.length))!=-1) { outbuf.write(buf,0,b); } in.close(); out.close(); inbuf.close(); outbuf.close(); } /** * 文件拷贝 * @param srcpath * @param destpath * @throws IOException */ public static void copyFile(String srcpath,String destpath)throws IOException{ copyFileByBuffedBuf(new File(srcpath), new File(destpath)); } }
调用 : IOUtil.copyFile("C:\\apache-tomcat-7.0.57.zip", "c:\\ret.dat");//源文件大小9M
copyFileByByte ----》 62229 毫秒
copyFileByByteBuf -----》 97 毫秒
copyFileByBuffed -----》 457 毫秒
copyFileByBuffedBuf ----》 28 毫秒
相关推荐
javaIO字节流读取文件方式总结共4页.pdf.zip
java 使用IO流实现文件的复制 java 使用IO流实现文件的复制
NULL 博文链接:https://xiongjiajia.iteye.com/blog/1683399
Java IO字符流和字节流,讲述了字符传输流和字节传输流的不同和作用
2、常用21个IO流:FileWriter、FileReader、...3、JAVA IO流经典代码示例,示例从易到难。代码功能涉及字节、字符、字符串、文本文件、图片、音频、视频。演示错误用法和经典用法。 4、代码的结构可查看README文件。
File 类、RandomAccessFile 类、字节流(文件字节流、缓冲字节流、基本数据类型字节流、打印流、对象序列化流、字节数组流)、字符流(缓冲字符流、文件字符流、转换流、格式化输出流、字符数组流) 这份代码源码...
java的IO流实现文件复制20190726.zip,使用的是字节流。
IO流 javaio java 流
主要介绍了Java基于IO流读取文件的方法,涉及Java文件流操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
JSP实现文件上传。type="file" 然后后台通过JAVA的io流具体实现
javaIO操作各种文件,筛选文件,拷贝文件,上传下载,字符流和字节流都有,根据实际项目情况直接贴就可以了,根据文件类型选择不同的testclss就可以。全部使用效率最高的流
Java中文件IO流.pdf 学习资料 复习资料 教学资源
java新IO文件流java新IO文件流java新IO文件流java新IO文件流java新IO文件流java新IO文件流java新IO文件流
通过java编程,实现使用IO流下载服务器文件,为HTTP层文件传输
javaIO流javaIO流
java IO流 例子 源程序 字节流,字符流。
JavaIO字节输出流的总结共6页.pdf.zip
彻底明白Java的IO流
文件流 读写操作,对java.io.*;中文件读写的一些相关信息