In Java benötigen Sie gelegentlich eine nahtlose Möglichkeit, die Inhalte eines InputStreams in einen OutputStream zu schreiben. Überraschenderweise kann es schwierig sein, eine einfache Lösung für diese Aufgabe zu finden. Während die manuelle Implementierung von Bytepuffercode verwaltbar ist, gibt es möglicherweise einen eleganteren Ansatz, der Ihrer Aufmerksamkeit einfach entgeht.
Betrachten wir ein Szenario mit einem InputStream namens „in“ und einem OutputStream namens „out“. Um den Inhalt effektiv zu übertragen, können Sie instinktiv Code wie den folgenden schreiben:
byte[] buffer = new byte[1024]; int len = in.read(buffer); while (len != -1) { out.write(buffer, 0, len); len = in.read(buffer); }
Es gibt jedoch eine prägnantere Möglichkeit, diese Funktionalität zu erreichen, wie von WMR vorgeschlagen. Durch die Nutzung der org.apache.commons.io.IOUtils von Apache können Sie die Methode „copy(InputStream, OutputStream)“ verwenden, die die Übertragungsaufgabe mühelos für Sie erledigt.
Mit dieser Methode wird Ihr Code wird unglaublich prägnant:
InputStream in; OutputStream out; IOUtils.copy(in, out); in.close(); out.close();
Keine aufwändige Pufferverwaltung mehr, nur eine einzige Zeile, die sich um alles kümmert. Und um Ihr Anliegen auszuräumen: Es scheint keinen zwingenden Grund zu geben, die Verwendung von IOUtils für eine so einfache Aufgabe zu vermeiden. Seine Einbindung in Ihre Codebasis kann Ihre Datenübertragungsvorgänge erheblich vereinfachen.
Das obige ist der detaillierte Inhalt vonWie kann ich InputStream-Inhalte in Java effizient an OutputStream übertragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!