该功能不会返回正确的内容

时间:2014-03-07 02:34:10

标签: java

每个人都有一个让我很烦恼的问题。我想从函数中获取StringBuffer,如下所示:

public static StringBuffer getString() throws IOException
{
    StringBuffer  sb=new  StringBuffer(" ");
    File file=new  File("d:\\c.txt");
    BufferedReader br= new BufferedReader(new FileReader(file));
    String  s;
    do
    {
        s=br.readLine();
        if(s!=null){
            sb.append(s);
        }
    }while(s!=null);
    System.out.println(sb.length());
    return  sb;
}

但是在main()函数中,我想调用该函数,代码如下:

public static void main(String[] args) throws Exception
{
    StringBuffer  sBuffer=getString();
    System.out.println(sBuffer);
}

它可以打印长度但不能打印StringBuffer本身,它会让我感到很烦恼,任何人都可以帮忙吗?

3 个答案:

答案 0 :(得分:0)

请尝试以下操作,并确保关闭" br":

public static void main(String[] args) throws Exception {

    StringBuffer  sBuffer=getString();
    System.out.println(sBuffer);

}

public static StringBuffer getString() throws IOException {
    StringBuffer sb = new StringBuffer();
    File file = new File("d:\\c.txt");
    FileInputStream fis = new FileInputStream(file);
    byte[] letter = new byte[1];

    String str = "";
    while (fis.read(letter) > 0) {          
        str = new String(letter);
        sb.append(str);
    }
    System.out.println(sb.length());

    return sb;
}

答案 1 :(得分:0)

您的代码正常运行,没有任何问题。检查d:\ c.txt是否存在。如果存在,请检查内容。可以删除所有内容并输入新内容,然后重试。

答案 2 :(得分:0)

你的代码还可以,它正常运行。当我试图在eclipse中运行它时,我做了两次修改。

1)文件文件=新文件(“d:\ c.txt”); ------->文件文件=新文件(“c:\ chinmay \ c.txt”);

2)使用try和catch

调用函数时必须处理异常
try{

Buffer = getString();} catch(IOException e){e.printStackTrace(); }

它正在工作..我附加了代码和输出

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;


public class TestMain {

    public static void main(String[] args) 
    {
        // TODO Auto-generated method stub
        StringBuffer sBuffer=null;
        try {
            sBuffer = getString();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println(sBuffer);

    }
    public static    StringBuffer  getString() throws IOException
    {   
     StringBuffer  sb=new  StringBuffer(" ");
     File file=new  File("c:\\chinmay\\c.txt");
     BufferedReader br= new BufferedReader(new FileReader(file));
     String  s; 
     do 
      {
      s=br.readLine();
      if(s!=null){
                 sb.append(s);
                  }
    }while(s!=null);
     System.out.println(sb.length());
     return  sb;
    }

}

文件c:\ chinmay \ c.txt包含在线Java培训

我跑的时候得到的输出是

<强> 21 在线Java培训

希望它有所帮助!