【问题标题】:Buffered reader not accessable by other methods其他方法无法访问 Bufferedreader
【发布时间】:2014-12-13 17:28:00
【问题描述】:

对不起,如果这很明显,我对 Java 没有经验。我有 2 种方法,一种创建 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;
    }

}

【问题讨论】:

    标签: java io bufferedreader


    【解决方案1】:

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

    BufferedReader buff;
    

    在你的方法中打开,像这样初始化它

    buff = new BufferedReader(read);
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-01
        • 1970-01-01
        • 2012-08-20
        • 2016-06-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多