使用扫描仪从文件中读取整数
Issue reading integers from file using Scanner
我在使用扫描仪从输入文件读取整数时遇到问题。这是我遇到问题的代码:
String path = sc.nextLine();
File filename = new File(path);
Scanner reader = null;
reader = new Scanner(filename);
for(int i = 0; i < 4; i++)
{
while(reader.hasNextInt())
{
System.out.println(reader.nextLine());
pid[i] = reader.nextInt();
arrivaltime[i] = reader.nextInt();
burstTime[i] = reader.nextInt();
}
}
我正在使用的输入文件包含以下信息:
1 1 1
2 2 2
3 3 3
4 4 4
使用这个文件,我试图使 pid[] = [1,2,3,4], arrivaltime[] = [1,2,3,4] 和 bursttime[] = [ 1,2,3,4]。但是,这些数组中的每一个都显示为 [4,0,0,0],我一直想不通为什么。任何帮助将不胜感激。
试试这个:
先读行
那就拆分吧!
int i = 0
while(reader.hasNextLine()){
String[] line = reader.nextLine().split(" ");
pid[i] = Integer.parseInt(line[0]);
arrivaltime[i] = Integer.parseInt(line[1]);
burstTime[i] = Integer.parseInt(line[2]);
i++;
}
当您使用 scanner.nextLine()
时,文件中的扫描仪指针会跳过第一行。
如果您不想打印每一行或使用其他拆分解决方案,则可以使用此方法。
int i = 0;
while(reader.hasNextInt()) {
pid[i] = reader.nextInt();
arrivaltime[i] = reader.nextInt();
burstTime[i] = reader.nextInt();
i++;
}
试试这个:
for(int i = 0; i < 4; i++)
{
if (reader.hasNextInt()) {
pid[i] = reader.nextInt();
arrivaltime[i] = reader.nextInt();
burstTime[i] = reader.nextInt();
}
}
我在使用扫描仪从输入文件读取整数时遇到问题。这是我遇到问题的代码:
String path = sc.nextLine();
File filename = new File(path);
Scanner reader = null;
reader = new Scanner(filename);
for(int i = 0; i < 4; i++)
{
while(reader.hasNextInt())
{
System.out.println(reader.nextLine());
pid[i] = reader.nextInt();
arrivaltime[i] = reader.nextInt();
burstTime[i] = reader.nextInt();
}
}
我正在使用的输入文件包含以下信息:
1 1 1
2 2 2
3 3 3
4 4 4
使用这个文件,我试图使 pid[] = [1,2,3,4], arrivaltime[] = [1,2,3,4] 和 bursttime[] = [ 1,2,3,4]。但是,这些数组中的每一个都显示为 [4,0,0,0],我一直想不通为什么。任何帮助将不胜感激。
试试这个: 先读行 那就拆分吧!
int i = 0
while(reader.hasNextLine()){
String[] line = reader.nextLine().split(" ");
pid[i] = Integer.parseInt(line[0]);
arrivaltime[i] = Integer.parseInt(line[1]);
burstTime[i] = Integer.parseInt(line[2]);
i++;
}
当您使用 scanner.nextLine()
时,文件中的扫描仪指针会跳过第一行。
如果您不想打印每一行或使用其他拆分解决方案,则可以使用此方法。
int i = 0;
while(reader.hasNextInt()) {
pid[i] = reader.nextInt();
arrivaltime[i] = reader.nextInt();
burstTime[i] = reader.nextInt();
i++;
}
试试这个:
for(int i = 0; i < 4; i++)
{
if (reader.hasNextInt()) {
pid[i] = reader.nextInt();
arrivaltime[i] = reader.nextInt();
burstTime[i] = reader.nextInt();
}
}