mva*_*vap -1 java buffer inputstream outputstream
我想从文本文件中读取一些数据.这是文本文件中数据的格式:
A,20, ,0
B,30, ,0
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
public ArrayList rechercherSalle()
{
String nom;
String ligne;
ArrayList<Salle> listeSalles = new ArrayList<Salle>();
Salle salle = new Salle();
try {
InputStream flux = new FileInputStream("salle.txt");
InputStreamReader lecture = new InputStreamReader(flux);
BufferedReader buff = new BufferedReader(lecture);
ligne = buff.readLine();
while (ligne != null) {
String[] objetSalle = ligne.split(",");
nom = objetSalle[0];
String capacite_maxString = objetSalle[1];
Integer capacite_max = Integer.parseInt(capacite_maxString);
String capacite_actuelleString = objetSalle[3];
Integer capacite_actuelle = Integer.parseInt(capacite_actuelleString);
String proprietaire = objetSalle[2];
salle = new Salle();
salle.setNom(nom);
salle.setCapacite_max(capacite_max);
salle.setCapacite_actuelle(capacite_actuelle);
if(proprietaire == null || proprietaire == "" || proprietaire == "null"){
salle.setEstReserve(Boolean.FALSE);
} else {
salle.setEstReserve(Boolean.FALSE);
}
listeSalles.add(salle);
}
buff.close();
} catch (Exception e) {
e.printStackTrace();
}
return listeSalles;
}
Run Code Online (Sandbox Code Playgroud)
此代码在while循环中导致无限循环.循环仅在第一行"A"上迭代.我不知道为什么.
有人能帮我吗?
你忘了阅读循环中的下一行,所以ligne永远不会null进入循环内部:
ligne = buff.readLine();
while (ligne != null) {
String[] objetSalle = ligne.split(",");
nom = objetSalle[0];
String capacite_maxString = objetSalle[1];
Integer capacite_max = Integer.parseInt(capacite_maxString);
String capacite_actuelleString = objetSalle[3];
Integer capacite_actuelle = Integer.parseInt(capacite_actuelleString);
String proprietaire = objetSalle[2];
salle = new Salle();
salle.setNom(nom);
salle.setCapacite_max(capacite_max);
salle.setCapacite_actuelle(capacite_actuelle);
if(proprietaire == null || proprietaire == "" || proprietaire.equals("null")) {
salle.setEstReserve(Boolean.FALSE);
} else {
salle.setEstReserve(Boolean.FALSE);
}
listeSalles.add(salle);
ligne = buff.readLine(); // add this
}
Run Code Online (Sandbox Code Playgroud)
你的代码的另一个问题是比较Strings ==.更改proprietaire == "null"到proprietaire.equals("null").
| 归档时间: |
|
| 查看次数: |
126 次 |
| 最近记录: |