I receive data from a InputStream and I have a ASCII character 11 which is a vertical tab. I can see the vertical tab 11 in the debugger. As soon as I try to append that character to the StringBuilder it is appended and the length is increased.
However, the problem is that when the String is returned the ASCII character is lost but when doing stringBuilder.toString().toCharArray() the ASCII character 11 can be seen.
I need to see in the String the ASCII character 11.
public static void main(String[] args) {
// Receive data from InputStream
int read = inputStream.read();
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append((char) read); // /u000b is ' '
stringBuilder.append("H");
System.out.println(stringBuilder.toString()); // prints H
char[] characters = stringBuilder.toString().toCharArray(); // length 2
}
How can this be achived?
EDIT:
I need to see the ASCII character in the original String in the debugger. For example:
public String getOriginalString() {
return originalString;
}
public String process(String originalString) {
return modifiedString;
}
EDIT:
public String buildMessage(InputStream inputStream) throws Exception {
StringBuilder message = null;
if(inputStream != null) {
message = new StringBuilder();
BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
int byteRead = bufferedInputStream.read();
while(byteRead != -1) {
char value = (char) byteRead;
message.append(value);
// check how many bytes available
if(bufferedInputStream.available() != 0) {
byteRead = bufferedInputStream.read();
}
else {
// to avoid blocking of data
break;
}
}
}
char[] characters = message.toString().toCharArray(); // returns length 2
return message.toString();
}
public static void main(String[] args) {
String i = buildMessage(inputStream);
char[] characters = i.toCharArray(); // ASCII characters lost
StringBuilder stringBuilder = new StringBuider(i);
char[] characters2 = stringBuilder.toString().toCharArray(); // ASCII characters lost
}