gpt4 book ai didi

java - 如何用Java读取文件

转载 作者:行者123 更新时间:2023-12-01 16:49:52 24 4
gpt4 key购买 nike

我正在用 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一片空白。请帮助我!

最佳答案

为了防止出现NullPointerException,我强烈建议像这样初始化listaZonas

List<Zona> listaZonas = Collections.emptyList();

IOExceptionString[] strMedicos = zonas[2].split("[%]"); 无关。因为 % 不是特殊字符 split("%") 就足够了。
如果打印 Error al leer el fichero ,它也不是 FileNotFoundException 。我猜您的文件是空的或受读保护。

关于java - 如何用Java读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61711181/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com