Mögliche Duplikate:
Wie konvertiere ich einen InputStream in einen String in Java?
Wie liest man in Java einen Eingabestream ein?
Ich habe eine InputSteam
und muss einfach eine einzige einfache String
mit dem kompletten Inhalt bekommen.
Wie wird das in Java gemacht?
Hier ist eine Modifikation von Gopis Antwort, die nicht das Zeilenende-Problem hat und auch effektiver ist, da sie keine temporären String-Objekte für jede Zeile benötigt und das redundante Kopieren in BufferedReader und die zusätzliche Arbeit in readLine vermeidet ( ).
%Vor% Sie müssen ein InputStreamReader
erstellen, um den Eingabestream zu umbrechen und zwischen Binärdaten und Text zu konvertieren. Geben Sie die geeignete Codierung basierend auf Ihrer Eingabequelle an.
Sobald Sie ein InputStreamReader
haben, können Sie ein BufferedReader
erstellen und den Inhalt zeilenweise lesen, oder einfach Puffer für Puffer lesen und an ein StringBuilder
anhängen, bis der read()
Aufruf zurückkommt -1.
Die Guava Bibliothek macht den zweiten Teil dieser einfach zu bedienenden CharStreams.toString(inputStreamReader)
.
Sie können auch die Apache Commons IO-Bibliothek
verwendenInsbesondere können Sie IOutils # toString (InputStream inputStream) -Methode
Umschließen Sie den Stream in einem Reader, um die Gebietsschema-Konvertierung zu erhalten, und lesen Sie dann weiter, während Sie in einem StringBuffer sammeln. Wenn Sie fertig sind, führen Sie eine toString () für den StringBuffer.
Sie können auch einen StringWriter verwenden folgt; Jedes read
von Ihrem InputStream wird mit einem write
(oder append
) mit dem StringWriter abgeglichen, und nach Abschluss können Sie getBuffer
aufrufen, um einen StringBuffer zu erhalten, der direkt verwendet werden kann oder Sie können seinen% co_de aufrufen % Methode.