【发布时间】:2021-10-11 01:35:25
【问题描述】:
我有一个包含以下数据的文件:
19387,73616,11/10/2021,7268,8271
81716,16381,11/10/2021,2736,3715,7362,837
75464,27315,11/10/2021,,3545,7645,460
- 格式为:id1, id2, yyyy/mm/dd, price, id3。
- 可以有多个 id3(有些行有更多数据)。
数据类型有:int、int、string、float、arraylist integer。所以在这里,我只想将 id3 读取为整数数组列表
到目前为止我的代码:
Public static void main(String[] args){
//variables
int id1;
int id2;
String date;
float price;
ArrayList<Integer> id3List = new ArrayList<>();
//check if file exists
try {
//get file
File myFile = new File (“fileName.txt“);
//pass file object to create scanner object
Scanner inputFile = new Scanner ("myFile").useDelimiter(",|\\r|\\n");
//read lines from file and store into respective variables
try {
While (inputFile.hasNextInt){
id1 = inputFile.nextInt();
id2 = inputFile.nextInt();
date = inputFile.next();
price = inputFile.nextFloat();
id3.add(inputFile.nextInt());
inputFile.nextLine(); //consume a line
} catch(InputMismatchException e){
System.out.println("Bad data in file.");
}
System.out.println(id3);
inputFile.close(); //close file
} catch(FileNotFoundException e) {
System.out.println("The file was not found.");
}
}
我得到的结果只显示第一个 id3 而忽略其余的:
[8271, 3715, 7645]
注意:我只会为此使用扫描仪,而不是缓冲阅读器。
【问题讨论】:
-
你只想使用扫描仪有什么原因吗?