首页 > 代码库 > Java 复制文件 (文件输入输出流)
Java 复制文件 (文件输入输出流)
import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class CopyFileDemo { public static void main(String[] args) { copyFile("c:\\a.txt","d:\\b.txt"); } private static final int OUTPUT_FILE_BUFFER_SIZE = 4*1024; private static boolean copyFile(String srcdir,String desdir){ //文件流 FileInputStream fileInputStream = null; FileOutputStream fileOutputStream = null; //使用缓存 BufferedInputStream bis; BufferedOutputStream bos; //每次读取的长度 int readLength = 0; //当前位置 int position = 0; //打印信息 System.out.println("copyFile srcdir: " + srcdir + " desdir:" + desdir); //目标文件 File disFileInfo = null; //源文件信息 File fileInfo = new File(srcdir); if(!fileInfo.exists()){ System.out.println("源文件不存在 返回false"); return false; } //定义缓存大小 byte[] buffer = new byte[OUTPUT_FILE_BUFFER_SIZE]; try { fileInputStream = new FileInputStream(fileInfo); } catch (FileNotFoundException e) { e.printStackTrace(); return false; } //缓冲的输入流 bis = new BufferedInputStream(fileInputStream, 0x4000); //检测目标文件是否存在 创建文件 disFileInfo = new File(desdir); if(!disFileInfo.exists()){ try { disFileInfo.createNewFile(); } catch (IOException e) { e.printStackTrace(); return false; } } try { fileOutputStream = new FileOutputStream(disFileInfo); } catch (FileNotFoundException e) { e.printStackTrace(); return false; } //缓冲的输出流 bos = new BufferedOutputStream(fileOutputStream, 0x10000); while(position != fileInfo.length()) { if(position != fileInfo.length()){ try { //{@ /*核心代码*/ //从此字节输入流中给定偏移量处开始将各字节读取到指定的 byte数组中buffer readLength = bis.read(buffer, 0, OUTPUT_FILE_BUFFER_SIZE); //将指定 byte数组buffer中从偏移量 off开始的 len个字节写入此缓冲的输出流 bos.write(buffer, 0, readLength); position += readLength; //@} } catch (IOException e) { e.printStackTrace(); return false; } } } //依次关闭流 if(bis != null){ try { bis.close(); } catch (IOException e) { e.printStackTrace(); return false; } } if(bos != null){ try { bos.close(); } catch (IOException e) { e.printStackTrace(); return false; } } if(position == fileInfo.length()){ System.out.println("copyFile success !!"); return true; } return false; }}
Java 复制文件 (文件输入输出流)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。