Java String aus InputStream [duplizieren]

9
  

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?

    
BahaiResearch.com 13.08.2010, 17:01
quelle

6 Antworten

8

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%     
x4u 13.08.2010, 17:33
quelle
5

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) .

    
Jon Skeet 13.08.2010 17:06
quelle
3

Sie können auch die Apache Commons IO-Bibliothek

verwenden

Insbesondere können Sie IOutils # toString (InputStream inputStream) -Methode

    
hhbarriuso 13.08.2010 17:53
quelle
2

Hier ist ein Beispielcode, der von hier angepasst wurde.

%Vor%     
Gopi 13.08.2010 17:08
quelle
0

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.

    
quelle
0

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.

    
maerics 13.08.2010 17:30
quelle

Tags und Links