假设我的BufferWriter里面已经有了一个字符串的数据。我怎么把字符串的数据写到一个String变量里面?

解决方案 »

  1.   

    BufferWriter里面数据是怎么来的呀?
      

  2.   


    StringWriter sw = new StringWriter();
    BufferedWriter bw = new BufferedWriter(sw);
    try {
        bw.write("HelloWorld");
        bw.flush();
        // 写更多的字符串进去,这样所有字符串都写进sw中了,然后
    } catch (IOException e) {
        e.printStackTrace();
    }
    String str = sw.toString(); // 得到bw中写的字符串这是我实现的代码,不知道是否符合要求。
      

  3.   

    在一个类里面BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
      

  4.   

    3楼的不行,因为我的BufferedWriter已经得到数据了。但是他不是利用StringWriter来构造的。
    是用标准输出流构造的。如上!呵呵,大鸟们救命啊。
      

  5.   

    BufferedWriter本身是不具有存储功能的吧
    你这样写的话,已经写到了标准输出了
    bw本身里面是没有这个数据的
    所以,你无法再写入string
      

  6.   

    突然想到一个办法,不知道行不行哦你创建BufferedWriter的时候,同时创建个Reader
    一边写进去,一边读进来,读出来的再写入String变量呵呵,不过不知道这么做有什么意义
    直接写入String变量,然后再输出到标准输出不就行了?
    关键在于,你到底想实现怎样的功能
      

  7.   

     LZ这样试试:         
              PrintStream console = System.out;
      String s = new String();
      ByteArrayOutputStream f= new ByteArrayOutputStream();
      PrintStream out = new PrintStream(f);
      System.setOut(out);
      BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); 
      bw.write("hello word");
      bw.flush();
      s=f.f.toString();
     
      

  8.   

    更正一下最后一句为:s=f.toString(); 
      

  9.   

    一个基本的原则:从输入流中读数据,向输出流中写数据
    System.out已经是输出流了,只能往里边写东西,需要获取键盘输入流可以使用System.in