public class Demo {

//通过管道完成文件的拷贝

public static void main(String[] arg)  {

PipedInputStream in =new PipedInputStream();

PipedOutputStream out;

try {

out = new PipedOutputStream(in);

sender s =new sender(out);

receiver  r =new receiver(in);

ExecutorService service =Executors.newCachedThreadPool();

service.execute(s);

service.execute(r);

service.shutdown();

service.awaitTermination(1, TimeUnit.DAYS);

} catch (Exception e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

}

} }

class sender implements Runnable{

PipedOutputStream out =null;

sender(PipedOutputStream temp){

out =temp;  }

@Override  public void run() {

// TODO 自动生成的方法存根

File file = new File("D:\\aa.log");

FileInputStream inStream;

try {

inStream = new FileInputStream(file);

byte[] buff=new byte[1024];

int len =0;

while((len = inStream.read(buff))!=-1) {

out.write(buff,0,len);

}

out.close();

inStream.close();

System.out.println("完成文件读取");

} catch (Exception e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

}

}

}

class receiver implements Runnable{

PipedInputStream in;

public receiver(PipedInputStream temp) {

in = temp;

}

@Override  public void run() {

// TODO 自动生成的方法存根

try {

FileOutputStream outStream =new FileOutputStream("F:\\kk.log");

byte[] buff =new byte[1024];

int len=0;

while((len=in.read(buff))!=-1) {

outStream.write(buff, 0, len);

outStream.flush();

}

outStream.close();

in.close();

System.out.println("完成新文件写入");

} catch (Exception e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

}  }  }

转载于:https://www.cnblogs.com/jack-L/p/10472169.html

通过管道实现文件的拷贝相关推荐

  1. linux大文件拷贝,Linux如何提高大文件的拷贝效率

    Linux系统操作中,当你在进行机器直接的拷贝时,遇到大文件的时候非常浪费时间,特别是将文件同时拷贝到多台机器上的时候,那么有什么好的方法能够提高大文件的拷贝效率呢?一起来学习下吧. 你可以从源机器逐 ...

  2. python 利用多进程实现文件的拷贝

    python 利用多进程实现文件的拷贝 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/m0_37338590/article/details/784 ...

  3. Linux命令scp用于远程文件的拷贝(上传和下载)

    3_Linux命令scp用于远程文件的拷贝(上传和下载) 文章目录 1.SCP简介 2.SCP使用 2.1.命令格式: 2.2.命令功能: 2.3.命令参数: 3.使用实例: 如何将本地文件通过终端上 ...

  4. linux命令之远程文件或文件夹拷贝-scp

    在linux安装部署或者升级分布式系统时,经常要重当前主机拷贝文件到集群中其他的主机节点,或者从其他主机节点拷贝文件到当前主机. 我们知道cp命令是同一主机下面文件的拷贝,而scp命令就是linux下 ...

  5. linux服务器拷贝目录文件夹,linux两台服务器之间文件/文件夹拷贝

    linux两台服务器之间文件/文件夹拷贝 跨服务器拷贝需要用到的命令是scp. ----------------------拷贝文件夹--------------------------------- ...

  6. linux拷贝文件夹怎么删除,linux文件及文件夹拷贝移动删除

    linux文件及文件夹拷贝移动删除 文件拷贝 文件夹拷贝 文件拷贝并重命名 文件夹拷贝并重命名 文件移动 文件夹移动 文件移动并重命名 文件夹移动并重命名 文件删除 文件夹删除 文件拷贝 cp tes ...

  7. java IO之字节流和字符流-Reader和Writer以及实现文件复制拷贝

    接上一篇的字节流,以下主要介绍字符流.字符流和字节流的差别以及文件复制拷贝.在程序中一个字符等于两个字节.而一个汉字占俩个字节(一般有限面试会问:一个char是否能存下一个汉字,答案当然是能了,一个c ...

  8. rsync 同步文件重复拷贝问题

    rsync 是同步文件的利器,一般用于多个机器之间的文件同步与备份,同时也支持在本地的不同目录之间互相同步文件.在这种场景下,rsync 远比 cp 命令更加合适,它只会同步需要更新的文件,默认情况下 ...

  9. Java 文件的拷贝

    一:上码 package com.wyj.two;import java.io.File; import java.io.FileInputStream; import java.io.FileNot ...

  10. linux文件传输到另一台linux,使用scp将文件/目录拷贝到另一台Linux主机上

    如何将一台Linux主机上的文件或目录拷贝到另一台Linux主机上,scp命令可以实现该需求 前提条件:两台Linux主机处于同一网段,可以互相ping通 操作如下: 文件拷贝 ①将本地文件拷贝到远端 ...

最新文章

  1. MySQL Cluster 日常维护
  2. 基于InfluxDB实现分页查询功能
  3. MANIFEST.MF文件的格式
  4. MATLAB实战系列(二十六)-matlab通过遗传算法求解车间调度问题
  5. keras神经网络模型的保存与加载
  6. centos安装ES(elasticsearch)
  7. 巧用PHP中__get()魔术方法
  8. Delphi与Windows 7下的用户账户控制(UAC)机制
  9. Linux Shell中有三种引号的用法
  10. python logger_牛逼!python中的logging模块居然这么好用!
  11. 雕虫晓技(十) Android超简单气泡效果
  12. Maven实战05_背景案例学Maven模块化
  13. 教你大数据必修三大技能 快快记录下来
  14. 北理工的石锅饭依然美味
  15. 用C语言程序编写字体,程序员都爱用这些字体写代码!
  16. ubuntu FreeRadius服务器安装
  17. Dell插入耳机仍然外放的问题解决
  18. 同比 数据模型 环比_同比(环比)在分析模型中的实现
  19. 企业内部应用(阿里商旅)集成 钉钉 与 微信 实现SSO单点登陆
  20. 2020年第三季度的垃圾邮件和网络钓鱼攻击分析

热门文章

  1. centos 虚拟机 使用串口_vmware中的centos怎样扩充空间
  2. 21秋期末考试电子商务概论10250k2
  3. 烹佛烹祖大炉鞴,锻凡锻圣恶钳锤
  4. redhat rhel 7中如何切换中英文输入法。
  5. 前台传参到后台出现中文乱码问题
  6. 从源码分析非线程安全集合类的不安全迭代器
  7. 数据库db2错误代码大全
  8. [转]VS2005中的代码视图显示行数
  9. [转]HTTP消息格式
  10. 支持“***Context”上下文的模型已在数据库创建后发生更改