How can I convert an integer returned by the read()
in a BufferedReader
to the actual character value and then append it to a String? The rea
Just cast c
to a char
.
Also, don't ever use +=
on a String
in a loop. It is O(n^2), rather than the expected O(n). Use StringBuilder
or StringBuffer
instead.
int c;
StringBuilder response= new StringBuilder();
while ((c = bufferedReader.read()) != -1) {
// Since c is an integer, cast it to a char.
// If c isn't -1, it will be in the correct range of char.
response.append( (char)c ) ;
}
String result = response.toString();
Cast it to a char first:
response += (char) c;
Also (unrelated to your question), in that particular example you should use a StringBuilder, not a String.
you could also read it into a char buffer
char[] buff = new char[1024];
int read;
StringBuilder response= new StringBuilder();
while((read = bufferedReader.read(buff)) != -1) {
response.append( buff,0,read ) ;
}
this will be more efficient than reading char per char