Java9新增的有趣方法InputStream.transferTo()
版權宣告:本文為博主chszs的原創文章,未經博主允許不得轉載。 https://blog.csdn.net/chszs/article/details/79233855
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 <fileName>");
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()等等。
相關文章
- Java9新特性系列(便利的集合工廠方法)Java
- 你要看看這些有趣的函式方法嗎?函式
- Java9的新特性的總結Java
- 有趣的cssCSS
- 探祕Java9Java
- 有趣的CSS題目(1): 左邊豎條的實現方法CSS
- 陣列的方法-新增刪除陣列
- linux下新增路由的方法Linux路由
- 表列新增預設值的方法
- java9 opens與exports的區別JavaExport
- js新增Cookie方法JSCookie
- JAVA9新特性(一)Java
- 有趣的翻譯
- 有趣的桶排序排序
- ES6新增的陣列方法和物件方法陣列物件
- ES6中物件新增的方法物件
- oracle新增主鍵的四種方法:Oracle
- Centos(RHEL) 6 新增網路卡的方法CentOS
- CMake中新增Qt模組的合理方法QT
- dotnet OpenXML SDK 新增 CoreFilePropertiesPart 的方法XML
- Java9有哪些新特性?Java
- windows如何新增印表機 windows新增印表機的方法Windows
- 反向代理的有趣用法
- 有趣的DBA面試題面試題
- 一個有趣的sqlSQL
- 有趣的演算法演算法
- 有趣的html頁面HTML
- Java8 和 Java9 的主要新特性Java
- Java9後String的空間優化Java優化
- jquery給元素新增樣式表的方法jQuery
- Goldengate 抽取程式的常用新增方法Go
- JiaThis自定義新增分享媒體的方法
- 有趣的書——《找對英語學習方法的第一本書》
- Java9新特性系列(JShell)JavaJS
- java9遷移注意事項Java
- 為Promise新增一個方法Promise
- js String新增 reverse()方法JS
- 有趣的程式碼註釋