在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中文網其他相關文章!