/ *我有这个包含这些数据的文件:
旧金山:19887.32
芝加哥:没有收到任何报告
纽约:298734.12
Los Angelos:没有收到任何报告
我想打印城市
这是我的代码,但似乎并没有停止!* /
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();
}
}
答案 0 :(得分:1)
你的代码无论如何都不会做你需要的,因为它会跳过每一行。这样做:
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。