流文件复制

字符流复制文件,只适用于文本

 

/**
	 * 字符流读写复制文件,仅限文本文件
	 * @param src 源文件
	 * @param out 目标文件
	 */
	public static void FileReaderFileWriter(String src , String out){
		
		FileWriter fileWriter = null;
		FileReader fileReader = null;
		
		try{
			
			fileReader = new FileReader(src);
			fileWriter = new FileWriter(out);
			
			char[] chars = new char[1024];
			int num = 0;
			
			while((num = fileReader.read(chars)) != -1){
				fileWriter.write(chars,0,num);
				fileWriter.flush();
			}
		}catch(IOException e){
			  e.printStackTrace();
		}finally{
			
			try {
				fileWriter.close();
				fileReader.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

字节流复制文件(文本,图片,音乐等)

 

 

/**
	 * 字节流读写复制文件
	 * @param src
	 * @param out
	 */
	public static void FileInputStreamFileOutputStream(String src,String out){
		
		FileInputStream fileInputStream = null;
		FileOutputStream fileOutputStream = null;
		
		try {
			
			fileInputStream = new FileInputStream(src);
			fileOutputStream = new FileOutputStream(out);
			
			byte[] b = new byte[1024];
			int num = 0;
			
			while( (num = fileInputStream.read(b)) !=-1 ){
				fileOutputStream.write(b,0,num);
				fileOutputStream.flush();
			}
			
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			
			try {
				fileOutputStream.close();
				fileInputStream.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}


为了适用性通常使用字节流复制文件

 

 

还有两种缓冲区流复制文件(只写一种,用法相似)

 

/**
	 * 字符流缓冲区读写复制文件(高效)
	 * @param src
	 * @param out
	 */
	public static void BufferReaderBufferWriter(String src , String out){
		
		BufferedReader bufferReader = null;
		BufferedWriter bufferWriter = null;
		
		try {
			bufferReader = new BufferedReader(new FileReader(src));
			bufferWriter = new BufferedWriter(new FileWriter(out));
			
			String line = "";
			
			while((line = bufferReader.readLine()) != null){
				bufferWriter.write(line);
				bufferWriter.newLine();
				bufferWriter.flush();
			}
			
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			
			try {
				bufferWriter.close();
				bufferReader.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	} 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值