如何用java读取此文件?
因此,我有一个excel中的.csv文件,我想从中读取数据并使用它。我有一个名为“Travel”的主类,其中包含由“Hotel”类生成的对象hotels 酒店的建造商如下:如何用java读取此文件?,java,file,io,Java,File,Io,因此,我有一个excel中的.csv文件,我想从中读取数据并使用它。我有一个名为“Travel”的主类,其中包含由“Hotel”类生成的对象hotels 酒店的建造商如下: 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;Or
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
该文件的内容如下:
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) {
}
问题是,我在执行此操作时出错,因为我在读取一行时得到null,我的代码有此变化
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) {
}
即使我保证NOTNULL现在输入代码,我的代码只是读取和保存3家酒店的数据,而不是所有酒店的数据
String line;
while ((line = bf.readLine()) != null) {
//split and proccess
}
如果我添加System.out.println(行);在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
}
每次调用bf.readLine()都会读取下一行。你必须处理所有的问题
String line;
while ((line = bf.readLine()) != null) {
//split and proccess
}
每次调用
bf.readLine()代码>消耗新行。所以,你跳过了lines@cricket_007那么我应该如何处理这个问题呢?使用while(line=bf.readLine()!=null)
并确保在while循环之前定义line:String line=null代码>。此代码将帮助您。基本上,你的while循环需要改变一点。每次调用bf.readLine()代码>消耗新行。所以,你跳过了lines@cricket_007那么我应该如何处理这个问题呢?使用while(line=bf.readLine()!=null)
并确保在while循环之前定义line:String line=null代码>。此代码将帮助您。基本上,你的while循环需要改变一点。