BufferedInputStream To String Conversion?

JavaStringBufferedinputstream

Java Problem Overview


> Possible Duplicate:
> In Java how do a read/convert an InputStream in to a string?

Hi, I want to convert this BufferedInputStream into my string. How can I do this?

BufferedInputStream in = new BufferedInputStream(sktClient.getInputStream() );
String a= in.read();

Java Solutions


Solution 1 - Java

BufferedInputStream in = new BufferedInputStream(sktClient.getInputStream());
byte[] contents = new byte[1024];

int bytesRead = 0;
String strFileContents; 
while((bytesRead = in.read(contents)) != -1) { 
    strFileContents += new String(contents, 0, bytesRead);				
}

System.out.print(strFileContents);

Solution 2 - Java

With Guava:

new String(ByteStreams.toByteArray(inputStream),Charsets.UTF_8);

With Commons / IO:

IOUtils.toString(inputStream, "UTF-8")

Solution 3 - Java

I suggest you use apache commons IOUtils

String text = IOUtils.toString(sktClient.getInputStream());

Solution 4 - Java

Please following code

Let me know the results

public String convertStreamToString(InputStream is)
                throws IOException {
            /*
             * To convert the InputStream to String we use the
             * Reader.read(char[] buffer) method. We iterate until the
    35.         * Reader return -1 which means there's no more data to
    36.         * read. We use the StringWriter class to produce the string.
    37.         */
            if (is != null) {
                Writer writer = new StringWriter();
     
                char[] buffer = new char[1024];
                try
                {
                    Reader reader = new BufferedReader(
                            new InputStreamReader(is, "UTF-8"));
                    int n;
                    while ((n = reader.read(buffer)) != -1) 
                    {
                        writer.write(buffer, 0, n);
                    }
                }
                finally 
                {
                    is.close();
                }
                return writer.toString();
            } else {       
                return "";
            }
        }

Thanks, Kariyachan

Solution 5 - Java

If you don't want to write it all by yourself (and you shouldn't really) - use a library that does that for you.

Apache commons-io does just that.

Use IOUtils.toString(InputStream), or IOUtils.readLines(InputStream) if you want finer control.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionHarinderView Question on Stackoverflow
Solution 1 - JavaNirmal- thInk beYondView Answer on Stackoverflow
Solution 2 - JavaSean Patrick FloydView Answer on Stackoverflow
Solution 3 - JavaPeter LawreyView Answer on Stackoverflow
Solution 4 - JavaDev.SintoView Answer on Stackoverflow
Solution 5 - JavaEran HarelView Answer on Stackoverflow