BufferedReader需要一个普通的Reader作为构造函数的参数。
在使用StringInputStream的情况下,StringInputStream不是一个Reader,所以不能直接给BufferedReader作构造函数的参数,需要加一层适配变成InputStreamReader。
而StringReader已经是一个Reader了,加一个InputStreamReader就是画蛇添足了。
所以应该是
BufferedReader in = new BufferedReader(new StringReader(ivjMessage.getText()));
在使用StringInputStream的情况下,StringInputStream不是一个Reader,所以不能直接给BufferedReader作构造函数的参数,需要加一层适配变成InputStreamReader。
而StringReader已经是一个Reader了,加一个InputStreamReader就是画蛇添足了。
所以应该是
BufferedReader in = new BufferedReader(new StringReader(ivjMessage.getText()));
InputStreamReader的构造函数原型是:
InputStreamReader(InputStream in) ;
但StringReader:
java.lang.Object
|
+--java.io.Reader
|
+--java.io.StringReader
所以不能用StringReader构造InputStreamReader。
但BufferedReader(Reader in) ;
所以你可以直接用StringReader构造BufferedReader。
即BufferedReader in = new BufferedReader(new StringReader(ivjMessage.getText()));
我想就可以了。