这个类的方法也没什么特别的,而且如果要用它来读取字符,还要先通过其他类读出数据转成String再传给他,所以实在不清楚,什么情况下需要用到StringReader这个类,特来向大家请教下。

解决方案 »

  1.   

    StringReader读入的是一个IO流。
    StringReader可以作为BufferedReader的构造函数的参数。。 
    楼主看看API。。
      

  2.   

    是吗?楼上的可以自己打段代码调试下看看,
    BufferedReader br = new BufferedReader(
    new StringReader("D:\\333\\111.txt"));
    String s;
    StringBuilder sb = new StringBuilder();
    while((s = br.readLine()) != null){
    sb.append(s + "\n");
    System.out.println(s);
    }
    br.close();
    System.out.println(sb);结果还是 D:\\333\\111.txt 哦(也就是说它读的就是你传进去的自己串呢)
      

  3.   

    假设有下面这样一个process方法,给这个方法传递一个Person对象并把处理结果写入到一个Writer对象:public void process_
    (Person person, Writer writer); 这是设计API的一种很好的方式,因为API不必关心对象构造的问题,并且它很简单且一般化。Writer类输出数据到一个文件;不过有时候数据必须保留在内存中,比如想在数据被输出以前在图形用户界面(GUI)上先显示一下,这时可以用StringWriter。StringWriter不是把数据写到某种形式的输出设备上,相反,它写到内存中。它有一个空的构造器和一个toString方法以得到StringBuffer。例如:Writer writer = ...;
    StringWriter out = new StringWriter(writer);
    process(person, out);
    StringBuffer result = out.getBuffer( ); 当读入文件时也一样。可以用StringReader代替Reader来哄骗API,而不必非得从某种形式的文件中读入。StringReader的构造器要求一个String参数。例如:Reader in = new StringReader("<conf><panic level="5"/></conf>");
    alarm.loadConfig(in); Writer和Reader类是设计来处理基于字符串的输入和输出的。InputStream和OutputStream类则应该用于处理基于字节的I/O。在这个层次的类中,可以用ByteArrayInputStream和ByteArrayOutputStream来达到StringReader和StringWriter的类似效果。