Juengwoo Yu Juengwoo Yu - 1 month ago 6x
Java Question

How to easily convert a BufferedReader to a String?

public String getPhotos() throws IOException{
// DataInputStream rd = new DataInputStream(request.getInputStream());
BufferedReader rd = new BufferedReader(
new InputStreamReader(request.getInputStream(), "UTF-8")
String line = null;
String message = new String();
final StringBuffer buffer = new StringBuffer(2048);
while ((line = rd.readLine()) != null) {
// buffer.append(line);
message += line;
JsonObject json = new JsonObject(message);
return message;

The code above is for my servlet. Its purpose is to get a stream, make a a Json file from it, and then send the Json to the client back.
But in order to make Json, I have to read
using a "while" loop. However I'd like to convert
to string in as few lines of code as possible. How do I do that?


I suggest using commons IO library - then it is a simple 1 liner:

String message = org.apache.commons.io.IOUtils.toString(rd);

of course, be aware that using this mechanism, a denial of service attack could be made, by sending a never ending stream of data that will fill up your server memory.