如何将字符串阅读器转换为字符串?

2022-09-02 02:39:29

我正在尝试将我的背部转换为常规,如图所示:StringReaderString

String string = reader.toString();

但是当我尝试读出这个字符串时,就像这样:

System.out.println("string: "+string);

我得到的只是一个指针值,如下所示:

java.io.StringReader@2c552c55

我在读回字符串时是否做错了什么?


答案 1
import org.apache.commons.io.IOUtils;

String string = IOUtils.toString(reader);

答案 2

的方法不返回内部缓冲区。StringReadertoStringStringReader

您需要从 中阅读才能获得此内容。StringReader

我建议使用接受字符数组的读取重载。批量读取比单字符读取更快。

即。

//use string builder to avoid unnecessary string creation.
StringBuilder builder = new StringBuilder();
int charsRead = -1;
char[] chars = new char[100];
do{
    charsRead = reader.read(chars,0,chars.length);
    //if we have valid chars, append them to end of string.
    if(charsRead>0)
        builder.append(chars,0,charsRead);
}while(charsRead>0);
String stringReadFromReader = builder.toString();
System.out.println("String read = "+stringReadFromReader);