大家好,欢迎来到IT知识分享网。
Java 9新增的有趣方法InputStream.transferTo()
2018.2.1
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。
JDK 9新增了一个有趣的方法,InputStream.transferTo(OutputStream)方法,此方法允许从对象调用方法表示的输入流中轻松传输(复制)字节到提供给该方法的输出流。正如方法的Javadoc注释所述,从该输入流中读取所有字节,并按照读取的顺序将字节写入给定的输出流。此方法可以使Java的有些例行任务变得更容易。
在使用此方法时要注意:
此方法不关闭任何流
强烈建议,如果发生I/O错误,那么输入输出两个流都应该立即关闭。
通常是在try-with-resources语句中实例化源InputStream和目标OutputStream对象。如下面的代码所示:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class StreamsTransfer {
public static void main(String[] args) {
if(args.length < 1) {
System.out.println(“USAGE StreamsTransfer “);
System.exit(-1);
}
final String fileName = args[0];
try(final InputStream is = new FileInputStream(fileName);
final OutputStream os = new FileOutputStream(fileName + “.copy”)) {
is.transferTo(os);
} catch(IOException e) {
System.out.println(“Exception encountered: ” + e);
}
}
}
通过try-with-resources语句可以确保两个资源的正确回收。上面的代码很简单,实际的应用场景就非常多了,比如可以把InputStream替换成URL.openStream()等等。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/21678.html