gpt4 book ai didi

java - 如何用java读取这个文件?

转载 作者:行者123 更新时间:2023-12-02 03:56:31 25 4
gpt4 key购买 nike

所以我有一个来自 Excel 的 .csv 文件,我想从中读取数据并使用它。我有一个名为“Travel”的主类,其中包含由“Hotel”类创建的对象的酒店。

Hotel 的构造函数如下:

Hotel(String name, String city, int stars, double cost, String imagePath);

文件内容如下:

Hotel las Américas;Cartagena;4;150000;./data/imagenes/americas.jpg
Hilton Garden Inn;Orlando;4;260000;./data/imagenes/hilton.jpg
Royal Decameron Barú;Barú;4;878125;./data/imagenes/baru.jpg
Hilton Lima Miraflores;Lima;5;493843;./data/imagenes/lima.jpg
Soho Hotel;Barcelona;3;329053;./data/imagenes/barcelona.jpg
Hotel Darcet;París;2;260248;./data/imagenes/paris.jpg
Corales de Indias;Cartagena;4;294618;./data/imagenes/corales.jpg
Hampton Inn;Orlando;4;374300;./data/imagenes/hamptonInn.jpg
All-Star Movies Resort;Orlando;5;308111;./data/imagenes/disney.jpg

所以我为了读取该文件而编写的代码如下

try(BufferedReader bf = new BufferedReader(new FileReader(fileName))) {
while(bf.readLine( ) != null) {
String line = bf.readLine( );
System.out.println(line);
line.trim( );
String data[] = line.split(";");

Hotel hotel = new Hotel( data[0], data[1], Integer.parseInt( data[2] ), Double.parseDouble( data[3] ), data[4] );
hoteles.add( hotel );
}
} catch(Exception e) {
}

问题是我在执行此操作时遇到错误,因为我读取一行为空,我的代码有这种变化

try(BufferedReader bf = new BufferedReader(new FileReader(fileName))) {
while(bf.readLine( ) != null) {
if (bf.readLine()!= null) {
String line = bf.readLine( );
System.out.println(line);
line.trim( );
String data[] = line.split(";");

Hotel hotel = new Hotel( data[0], data[1], Integer.parseInt( data[2] ), Double.parseDouble( data[3] ), data[4] );
hoteles.add( hotel );
}
}
} catch(Exception e) {
}

即使我现在保证不为 null 输入代码,我的代码也只是读取和保存 3 个酒店的数据,而不是全部。

如果我添加 System.out.println(line);在 line.trim() 之前我有这个输出 Hilton

Garden Inn;Orlando;4;260000;./data/imagenes/hilton.jpg
Hilton Lima Miraflores;Lima;5;493843;./data/imagenes/lima.jpg
Hotel Darcet;París;2;260248;./data/imagenes/paris.jpg
Hampton Inn;Orlando;4;374300;./data/imagenes/hamptonInn.jpg
null

这还不是全部。我做错了什么?

谢谢

最佳答案

每次调用 bf.readLine() 都会读取下一行。您必须处理所有这些。

String line;
while ((line = bf.readLine()) != null) {
//split and proccess
}

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

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