用xshell传输jdk

可以使Java中的有时例行任务变得更加轻松的JDK 9的次要补充之一是方法InputStream.transferTo(OutputStream)的增加 。 顾名思义,此方法允许将字节轻松地从调用该方法的对象表示的输入流传输(复制)到提供给该方法的输出流。 或者,如该方法的Javadoc注释所述, InputStream.transferTo(OutputStream) “从此输入流中读取所有字节,并按读取顺序将这些字节写入给定的输出流中。”

关于JavaStream,有关InputStream.transferTo(OutputStream)方法的注释还包括以下这些语句:

  • “此方法不会关闭任何一个流。”
  • “强烈建议在发生I / O错误时立即关闭两个流。”

处理上面显示的两个问题的最简单方法是在InputStream.transferTo(OutputStream)方法的Javadoc注释中表达的方法是在try-with-resources语句中实例化源InputStream和目标OutputStream 。 下一个代码清单中显示了一个示例。

StreamsTransfer.java :使用InputStream.transferTo(OutputStream)

package dustin.examples.iostreams;import static java.lang.System.out;import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;/*** Demonstrate InputStream.transferTo(OutputStream) added in JDK 9.*/
public class StreamsTransfer
{/*** Demonstrate use of InputStream.transferTo(OutputStream) using* FileInputStream and FileOutputStream implementations of* InputStream and OutputStream respectively.** @param arguments Command-line arguments: one expected,*    which is the name of the input file.*/public static void main(final String[] arguments){if (arguments.length < 1){out.println("USAGE StreamsTransfer <fileName>");System.exit(-1);}final String fileName = arguments[0];try (final InputStream is = new FileInputStream(fileName);final OutputStream os = new FileOutputStream(fileName + ".copy")){is.transferTo(os);}catch (IOException exception){out.println("Exception encountered: " + exception);}}
}

上面的代码清单中的try-with-resources语句打开两个资源( InputStreamOutputStream实例),因此确保它们总是关闭的。 本示例中使用的InputStream实现是FileInputStream ,本示例中使用的OutputStream实现是FileOutputStream 。

尽管可以使用不同的机制 (例如,使用重载的Files.copy方法之一) 在Java中更轻松地完成上述示例中实现的文件复制,但是上面代码清单中所示的方法仅用于简单说明,并且可以可以归纳为InputStreamOutputStream任何实现。 再举一个例子,Josh Bloch在Effective Java ( 第三版 InputStream.transferTo(OutputStream)的项目59中讨论了InputStream.transferTo(OutputStream)用法,他的插图使用URL.openStream()作为InputStream以及System.out作为OutputStream

当执行上述示例时,它将把提供的文件复制到另一个具有相同名称的文件,并在新文件名的末尾添加“ .copy ”。 即使两个I / O流在处理任何一个过程中发生异常,也会关闭。

在Java开发社区中,似乎普遍欢迎添加InputStream.transferTo(OutputStream) 。 Ali Dehghani在“ Java 9的最低有效位 ”一文中讨论了这种方法。 此方法还包含在“ Java 9中的5件事变得更容易 ”一文中(还指出,现在可以在try-with-resources中有效地使用final变量,而不必像我在示例中那样将它们明确地确定为final )。 Reddit / r / java子redditit包含一个有趣的讨论,标题为“ JDK 9中的新方法:InputStream.transferTo(OutputStream)” 。

并不是每个人都喜欢在JDK 9中添加InputStream.transferTo(OutputStream) 。在“ Java 9:好的,坏的和专用的接口方法 ”一文中, Yegor Bugayenko将InputStream描述为“已经过时的类”,并且写道, InputStream.transferTo(OutputStream)是“年轻的OOP程序员犯的最典型的错误之一:他们使接口变大……仅仅是因为他们需要更多的功能。” 他还指出, IOUtils.copy(InputStream,OutputStream)已通过Apache Commons提供 。

在JDK 9中添加InputStream.transferTo(OutputStream)方法是对标准JDK的一个很小但有时非常方便的添加,它特别容易与try-with-resources语句结合使用。

翻译自: https://www.javacodegeeks.com/2018/01/transferring-inputstream-outputstream-jdk-9.html

用xshell传输jdk

用xshell传输jdk_在JDK 9中将InputStream传输到OutputStream相关推荐

  1. 在JDK 9中将InputStream传输到OutputStream

    可以使Java中的有时例行任务变得更加轻松的JDK 9的次要补充之一是方法InputStream.transferTo(OutputStream)的增加 . 顾名思义,此方法允许将字节轻松地从调用该方 ...

  2. Java中将inputstream输入流转换成byte[]字节数组

    Java中将inputstream输入流转换成byte[]字节数组 Java中的I/O机制都是基于数据流进行输入和输出的,将流转换成字节数组保存下来是数据流传输必不可少的一部分.转换的代码如下(在具体 ...

  3. fastapi 传输文件存文件_揭秘|国内影视文件传输的真相,跨境文件传输更不简单...

    2020年影视行业至黑时刻总算要过去了,下半年复苏迹象已经显现.作为影视行业的基础搬运工,文件传输贯穿始末.无论是TB级原始素材还是后期协作的大文件,多团队高效协作必然要考虑大文件传输这个基础工具. ...

  4. 计算机网络之传输层:5、TCP可靠传输

    传输层:5.TCP可靠传输 TCP可靠传输: 伪首部校验: 实现可靠传输的过程: 实现可靠传输的工作原理: 实现流量控制的工作原理: TCP可靠传输: 伪首部校验: 与UDP校验一样,增加伪首部进行校 ...

  5. ftp可以传输什么类型文件_为什么文件传输软件总让数据“没有安全感”?

    最新的<大数据安全市场-全球机会分析和行业预测>报告显示:到2027年,整个大数据安全市场将增长到644亿美金.这对整个大数据营销市场来说,是一个好消息!但在数据极速增长的同时,传输安全. ...

  6. 局域网限制网速软件_大文件传输工具,比微信、QQ文件传输还好用的传输软件,关键还不限速!...

    白剽一个专注分享各种软件资源的平台 软件名称:文件传输助手 如果你觉得本篇文章对你有帮助,麻烦你给我本篇文章的文末点一个[在看]就是对我最大的帮助,白嫖党和伸手党真的不好,正所谓赠人玫瑰手留余香,我帮 ...

  7. ssis sql_使用sp_help_revlogin和SSIS传输登录任务将SQL登录名传输到AG的辅助副本

    ssis sql In this article, I am going to explain how we can transfer logins to the secondary replica ...

  8. 网络协议从入门到底层原理(5)传输层(UDP、TCP - 可靠传输、流量控制、拥塞控制、建立连接、释放连接)

    传输层( Transport) 传输层( Transport) UDP 协议(数据格式.检验和) 端口(Port) TCP TCP - 数据偏移.保留 TCP - 检验和( CheckSum) TCP ...

  9. 最快速的文件传输软件,解析镭速文件传输软件

    想到每天都需要进行文件传输,就会烦躁,要是有一夸最快速的文件传输软件的话,这样就可以节省大量的时间了,那么针对于用户的这一个需求,我们来介绍一下镭速的文件传输软件,看是否是那么快,快到你难以置信. 文 ...

最新文章

  1. MySql隔离级别多线程并发读取数据时的正确性
  2. java程序员高薪持续的原因有哪些
  3. linux 字符串加入中括号,Shell 中的中括号用法总结
  4. IOS开发地理编码与反向编码
  5. LeetCode 143. 重排链表(链表反转+快慢指针)
  6. c语言将字符串按空格分割_字符串单词输入反向输出怎么搞?C语言又带着二维数组来了!...
  7. 快速配置 Samba
  8. 宜昌方言RAP 说唱 《在宜昌》
  9. MySQL 的主从原理和复制过程简述
  10. 漫画面向对象编程,用漫画给你讲技术!
  11. 【Python-3.5】绘制世界人口地图
  12. VAE-变分自编码器-Auto-Encoding Variational Bayes-详细推导
  13. u盘复制到计算机的文档打不开怎么办,U盘文件复制到别的电脑打不开怎么办
  14. 路演 - roadshow
  15. 超立方体结构图计算机系统,科学网—超立方体或将构成纳米计算机
  16. python按enter退出_【cmd按任意键退出 python】
  17. 汽车手机互联一键启动手机撑控
  18. SQL面试必考——计算留存率
  19. 【论文阅读一】Adaptive Cross-Modal Few-shot Learning
  20. 计算机控制技术课程配套教材习题解答(第1、2、3章)

热门文章

  1. YBTOJ:最短时间(长链剖分、线段树)
  2. jzoj3846-七天使的通讯【二分图判定】
  3. 2021牛客暑期多校训练营3 I-Kuriyama Mirai and Exclusive Or(异或+差分)
  4. 纪中A组模拟赛总结(2021.7.14)
  5. 【dfs】民生问题(2011特长生 T4)
  6. Spring MVC总结
  7. Java多线程:实现方式Thread与Runnable
  8. 如何使ArrayList 线程安全
  9. Java NIO系列教程(十一) Pipe
  10. Oracle入门(十四.23)之管理触发器