2014-12-13 78 views
1

对不起,如果这是显而易见的,我对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; 
    } 

} 

回答

0

定义在实例级别的BufferedReader刚刚宣布路径变量像

BufferedReader buff; 

后在你的方法开放,初始化它像

buff = new BufferedReader(read); 
0

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