首页 > 解决方案 > 我想在构造函数中打开一个文件进行读取。该文件应该可以通过任何方法读取,而无需创建另一个读取器对象

问题描述

构造函数打开一个文件进行读取。我有一个名为 getNext() 的方法,它在字符串数组中返回文件的下一行。但是它说在构造函数中已经创建的 BufferedReader 对象在 import java.io 中找不到。; 导入 java.util。;

public class SNIDDb
{
  private char delimiter;
  private String name;

  public SNIDDb(String name, char delimiter)
  {
    this.name=name;
    this.delimiter=delimiter;
    try
    {
      FileReader fr= new FileReader(name);
      BufferedReader br= new BufferReader(fr);
    }
    catch(Exception e)
    {
      System.out.print(e.getMessage());
    }
  }

  public Boolean hasNext() throws Exception
  {
    return !(br.readLine()==null); 
  }

  public String[] getNext() throws Exception
  {
    String c_line="";
    c_line=br.readLine();
    String[] n_line=c_line.split(delimiter);
    return n_line;
  }

  public void rewrite() throws Exception
  {
    br.close();
    BufferedWriter writer = new BufferedWriter(new FileWriter(name));
  }

标签: javafilebufferedreaderbufferedwriter

解决方案


br是一个只能在构造函数内部使用的局部变量。您应该将其设为实例成员变量,例如delimiterand name


推荐阅读