其他方法无法访问Bufferedreader

时间:2014-12-13 17:28:01

标签: java io bufferedreader

很抱歉,如果这很明显,我对Java缺乏经验。我有两个方法,一个创建BufferedReader,另一个处理它。但是,处理方法无法访问BufferedReader,即使它是在公共方法中。我做错了吗?

package textfiles;
import java.io.IOException;
import java.io.FileReader;
import java.io.BufferedReader;

public class ReadFile {

    private String path;

    public ReadFile(String filePath) {
        path = filePath;
    }

    public void Open() throws IOException {
    FileReader read = new FileReader(path);
    BufferedReader buff = new BufferedReader(read);
    }

    public String[] OpenFile() throws IOException {



        int numberOfLines = readLines();
        String[] textData = new String[numberOfLines];

        int i;

        for (i=0; i < numberOfLines; i++) {
        textData[i] = buff.readLine();

        }

        buff.close();
        return textData;
    }

    int readLines() throws IOException {

        FileReader linedFile = new FileReader(path);
        BufferedReader  findLines = new BufferedReader(linedFile);

        String lines;
        int noLines = 0;

        while ((lines = findLines.readLine()) != null) {
            noLines++;
        }

        findLines.close();
        return noLines;
    }

}

2 个答案:

答案 0 :(得分:0)

在声明路径变量之后立即在实例级定义BufferedReader,如

BufferedReader buff;

在您的方法中打开,将其初始化为

buff = new BufferedReader(read);

答案 1 :(得分:0)

您的代码应该将编译时错误作为buff未定义变量返回。因此将其声明为实例变量并直接在任何方法中使用它。