【发布时间】:2023-03-18 16:00:02
【问题描述】:
我正在用 Java 创建一个程序,我想读取一个名为“medicos.txt”的文件。阅读文件后,我想保存所有信息。问题是当程序开始读取文件时,我不知道为什么它会在函数中间转到另一个函数。这是我的代码:
List<Zona> listaZonas;
final String NOMBRE_FICHERO = "files/medicos.txt";
final String NOMBRE_FICHERO_DAT = "files/medicos2.dat";
public FicheroZonas() {
listaZonas = leerClaseFichero();
// leerClaseFichero();
}
public List<Zona> getListaZonas() {
return listaZonas;
}
public List<Zona> leerClaseFichero() {
String linea = " ";
listaZonas = new ArrayList<>();
Zona zona = null;
try (BufferedReader in = new BufferedReader(new FileReader(NOMBRE_FICHERO))) {
while ((linea = in.readLine()) != null) {
zona = leerZona(linea);
if (zona != null) {
listaZonas.add(zona);
}
}
} catch (FileNotFoundException e) {
System.out.println("Fichero no encontrado");
} catch (IOException e) {
System.out.println("Error al leer el fichero");
}
return listaZonas;
}
private Zona leerZona(String linea) {
String[] zonas = linea.split("[$]");
List<Medico> listaMedicos = new ArrayList<>();
String[] strMedicos = zonas[2].split("[%]");
for (int i = 0; i < strMedicos.length; i++) {
String datos[] = strMedicos[i].split("[&]");
Medico medico = new Medico(datos[0], datos[1], datos[2]);
listaMedicos.add(medico);
}
Zona zona = new Zona(zonas[0], listaMedicos);
return zona;
}
在该代码中,在执行String[] strMedicos = zonas[2].split("[%]"); 之后,它转到
catch (IOException e) {System.out.println("Error al leer el fichero"); } 而不是 for。
之后当我想这样做时:
ficheroZonas = new FicheroZonas();
listaZonas = ficheroZonas.getListaZonas();
lZonas = new JList<>();
for (int i = 0; i < listaZonas.size(); i++) {
modeloZona.add(i, listaZonas.get(i));
}
我不能这样做,因为listaZonas 为空。请帮帮我!
【问题讨论】:
标签: java file null syntax-error ioexception