BufferedReader需要一个普通的Reader作为构造函数的参数。
在使用StringInputStream的情况下,StringInputStream不是一个Reader,所以不能直接给BufferedReader作构造函数的参数,需要加一层适配变成InputStreamReader。
而StringReader已经是一个Reader了,加一个InputStreamReader就是画蛇添足了。
所以应该是
BufferedReader in = new BufferedReader(new StringReader(ivjMessage.getText()));

解决方案 »

  1.   

    因为
    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()));
    我想就可以了。