用xshell传输jdk_在JDK 9中将InputStream传输到OutputStream
用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语句打开两个资源( InputStream
和OutputStream
实例),因此确保它们总是关闭的。 本示例中使用的InputStream
实现是FileInputStream ,本示例中使用的OutputStream
实现是FileOutputStream 。
尽管可以使用不同的机制 (例如,使用重载的Files.copy方法之一) 在Java中更轻松地完成上述示例中实现的文件复制,但是上面代码清单中所示的方法仅用于简单说明,并且可以可以归纳为InputStream
和OutputStream
任何实现。 再举一个例子,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相关推荐
- 在JDK 9中将InputStream传输到OutputStream
可以使Java中的有时例行任务变得更加轻松的JDK 9的次要补充之一是方法InputStream.transferTo(OutputStream)的增加 . 顾名思义,此方法允许将字节轻松地从调用该方 ...
- Java中将inputstream输入流转换成byte[]字节数组
Java中将inputstream输入流转换成byte[]字节数组 Java中的I/O机制都是基于数据流进行输入和输出的,将流转换成字节数组保存下来是数据流传输必不可少的一部分.转换的代码如下(在具体 ...
- fastapi 传输文件存文件_揭秘|国内影视文件传输的真相,跨境文件传输更不简单...
2020年影视行业至黑时刻总算要过去了,下半年复苏迹象已经显现.作为影视行业的基础搬运工,文件传输贯穿始末.无论是TB级原始素材还是后期协作的大文件,多团队高效协作必然要考虑大文件传输这个基础工具. ...
- 计算机网络之传输层:5、TCP可靠传输
传输层:5.TCP可靠传输 TCP可靠传输: 伪首部校验: 实现可靠传输的过程: 实现可靠传输的工作原理: 实现流量控制的工作原理: TCP可靠传输: 伪首部校验: 与UDP校验一样,增加伪首部进行校 ...
- ftp可以传输什么类型文件_为什么文件传输软件总让数据“没有安全感”?
最新的<大数据安全市场-全球机会分析和行业预测>报告显示:到2027年,整个大数据安全市场将增长到644亿美金.这对整个大数据营销市场来说,是一个好消息!但在数据极速增长的同时,传输安全. ...
- 局域网限制网速软件_大文件传输工具,比微信、QQ文件传输还好用的传输软件,关键还不限速!...
白剽一个专注分享各种软件资源的平台 软件名称:文件传输助手 如果你觉得本篇文章对你有帮助,麻烦你给我本篇文章的文末点一个[在看]就是对我最大的帮助,白嫖党和伸手党真的不好,正所谓赠人玫瑰手留余香,我帮 ...
- 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 ...
- 网络协议从入门到底层原理(5)传输层(UDP、TCP - 可靠传输、流量控制、拥塞控制、建立连接、释放连接)
传输层( Transport) 传输层( Transport) UDP 协议(数据格式.检验和) 端口(Port) TCP TCP - 数据偏移.保留 TCP - 检验和( CheckSum) TCP ...
- 最快速的文件传输软件,解析镭速文件传输软件
想到每天都需要进行文件传输,就会烦躁,要是有一夸最快速的文件传输软件的话,这样就可以节省大量的时间了,那么针对于用户的这一个需求,我们来介绍一下镭速的文件传输软件,看是否是那么快,快到你难以置信. 文 ...
最新文章
- MySql隔离级别多线程并发读取数据时的正确性
- java程序员高薪持续的原因有哪些
- linux 字符串加入中括号,Shell 中的中括号用法总结
- IOS开发地理编码与反向编码
- LeetCode 143. 重排链表(链表反转+快慢指针)
- c语言将字符串按空格分割_字符串单词输入反向输出怎么搞?C语言又带着二维数组来了!...
- 快速配置 Samba
- 宜昌方言RAP 说唱 《在宜昌》
- MySQL 的主从原理和复制过程简述
- 漫画面向对象编程,用漫画给你讲技术!
- 【Python-3.5】绘制世界人口地图
- VAE-变分自编码器-Auto-Encoding Variational Bayes-详细推导
- u盘复制到计算机的文档打不开怎么办,U盘文件复制到别的电脑打不开怎么办
- 路演 - roadshow
- 超立方体结构图计算机系统,科学网—超立方体或将构成纳米计算机
- python按enter退出_【cmd按任意键退出 python】
- 汽车手机互联一键启动手机撑控
- SQL面试必考——计算留存率
- 【论文阅读一】Adaptive Cross-Modal Few-shot Learning
- 计算机控制技术课程配套教材习题解答(第1、2、3章)