我正在用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”);}“,但它没有做到这一点。
此后,当我想这样做时:
ficheroZonas = new FicheroZonas();
listaZonas = ficheroZonas.getListaZonas();
lZonas = new JList<>();
for (int i = 0; i < listaZonas.size(); i++) {
modeloZona.add(i, listaZonas.get(i));
}
我不能这样做,因为“ listaZonas”为空。请掌舵我!
/etc
/Volumes/USB_STICK
/bin/echo
/System/Library/Desktop Pictures/Catalina Day.heic
final String NOMBRE_FICHERO = "/Users/<Your Name>/Desktop/Path/to/files/medicos.txt";