java - 我想在构造函数中打开一个文件进行读取。该文件应该可以通过任何方法读取,而无需创建另一个读取器对象
问题描述
构造函数打开一个文件进行读取。我有一个名为 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));
}
解决方案
br
是一个只能在构造函数内部使用的局部变量。您应该将其设为实例成员变量,例如delimiter
and name
。
推荐阅读
- javascript - window.setInterval 是在这里正确使用还是我引入了麻烦?
- flutter - Flutter - 仅在 TextField 失去焦点时验证 TextFormField
- python - Seaborn Violinplot 改变色调的顺序
- pandas - 无法导入numpy,DLL加载失败:找不到指定的模块
- excel - 如果单元格的日期在今天之后,则运行子例程
- python - 如何将流式 JSON 数据从控制台插入到 MySQL 数据库
- angular - AWS 使用角度放大路由
- java - 向 PushGateway 报告 Flink 指标时,每个 Job 的 jobName 不同
- java - 如何使用 Spring Security 注入默认安全标头
- sql - 将 3 个不同表中的相关数据插入一个 - 在 SQL Server 中