的替代品我在我的應用程序中升級Guava庫。我在幾個地方有以下結構,創建&從InputStream
寫入File
。棄用Files.copy,ByteStreams.copy,InputSupplier
File destination;
InputStream myInputStream;
.
.
.
Files.copy(new InputSupplier<InputStream>() {
@Override
public InputStream getInput() throws IOException {
return myInputStream;
}
}, destination);
的問題是,InputSupplier
和Files.copy
已經過時,像ByteStreams.copy
一些其他的替代品已被棄用,以及
誰能告訴我,如果有番石榴一個天然替代品來寫一個任意的InputStream到文件?
至於_why_這是危險的:問題依賴於它來關閉你的'InputStream'。通常,通過使用try-finally(或理想的情況下,使用Java 7,試用資源),與開放流相同的代碼通常也應確保流是關閉的。在'openStream()'中打開流的'ByteSource'將爲你打開和關閉流。如果它不打開流本身,則其他代碼應該真正負責關閉流,因爲在某些情況下,可能無法關閉流。 – ColinD 2014-08-29 15:42:53
哇,很高興知道這一切,感謝您的深入解釋 – rupps 2014-08-29 18:40:49