/* 我有这个包含这些数据的文件:
旧金山:19887.32
芝加哥:未收到报告
纽约:298734.12
洛杉矶:未收到报告
我只想打印城市
这是我的代码,但似乎没有停止!*/
public static void main(String[] args) {
try (BufferedReader br = new BufferedReader(new FileReader("sales.dat"))) {
String line;
char c;
while ((line = br.readLine()) != null) {
do{
c =(char) br.read();
System.out.print(c);
}while(c != ':');
System.out.println();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
最佳答案
您的代码无论如何都不会执行您需要的操作,因为它会跳过每 2 行。改为这样做:
try (BufferedReader br = new BufferedReader(new FileReader("sales.dat"))) {
String line;
while ((line = br.readLine()) != null) {
int i = line.indexOf(':');
if (i != -1)
System.out.println (line.substring(0, i));
}
}
关于无限循环:它这样做是因为 read() 在文件末尾时将返回 -1。
关于java - 我的代码 : my programm seems not stopping 中的无限循环问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30813075/