这是我做了多远。
try
{
Scanner keyb = new Scanner(System.in);
System.out.print("Enter the name of the input file-> ");
String inFileName = keyb.next();
System.out.print("Enter the name of the output file-> ");
String outFileName = keyb.next();
ArrayList<Time> roster = new ArrayList<Time>();
Scanner fileIn = new Scanner(new File(inFileName));
while (fileIn.hasNext())
{
int hours = fileIn.nextInt();
int minutes = fileIn.nextInt();
String meridian = fileIn.next();
roster.add(new Time(hours,minutes,meridian));
}
fileIn.close();
基本上,我要做的是读取'appointment.txt'文件,该文件具有11:30 am.m.形式的所有不同时间,以便按顺序对其进行排序并保存不同的文件名。但由于小时和分钟之间的冒号(:),我的while循环无法正确读取时间并产生错误。什么会使我的while循环工作?
答案 0 :(得分:0)
您的while
- 循环无效,因为您检查了fileIn.hasNext()
,但之后以不同的方式使用了fileIn.nextInt()
和fileIn.next()
。
您可能想要使用的是:
while (fileIn.hasNextLine()) {
String line = fileIn.nextLine();
String[] bigParts = line.split(" ");
String[] timeParts = bigParts[0].split(":");
roster.add(new Time(
Integer.parseInt(timeParts[0]),
Integer.parseInt(timeParts[1]),
bigParts[1]
));
}
这会逐行读取文件,然后读取它已读取的行。接下来将文本分成三部分,首先是(空白),然后是
:
(冒号)。
更新:已添加Integer.parseInt()
,因为它最初也已完成。