首頁 >Java >java教程 >Java中如何有效率地將InputStream內容傳輸到OutputStream?

Java中如何有效率地將InputStream內容傳輸到OutputStream?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-21 14:56:16694瀏覽

How Can I Efficiently Transfer InputStream Content to OutputStream in Java?

在Java 中將InputStream 內容傳輸到OutputStream 的簡單方法

在Java 中,您有時可能需要一種無縫方式將InputStream 的內容寫入OutputStream 。令人驚訝的是,為這項任務找到一個簡單的解決方案可能很難。雖然手動實現位元組緩衝區程式碼是可以管理的,但可能有一種更優雅的方法可以簡單地逃避您的注意。

讓我們考慮一個名為「in」的輸入流和一個名為「out」的輸出流的場景。為了有效地傳輸內容,您可能會本能地編寫類似於以下內容的程式碼:

byte[] buffer = new byte[1024];
int len = in.read(buffer);
while (len != -1) {
    out.write(buffer, 0, len);
    len = in.read(buffer);
}

但是,正如 WMR 所建議的,有一種更簡潔的方法來實現此功能。透過利用 Apache 的 org.apache.commons.io.IOUtils,您可以使用「copy(InputStream, OutputStream)」方法,可以輕鬆地為您處理傳輸任務。

使用此方法,您的程式碼變得極其簡潔:

InputStream in;
OutputStream out;
IOUtils.copy(in, out);
in.close();
out.close();

不再需要費力的緩衝區管理,只需一行即可處理所有事情。為了解決您的擔憂,似乎沒有令人信服的理由避免使用 IOUtils 來完成如此簡單的任務。將其包含在您的程式碼庫中可以極大地簡化您的資料傳輸操作。

以上是Java中如何有效率地將InputStream內容傳輸到OutputStream?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn