Java-处理文件中的数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java-处理文件中的数据相关的知识,希望对你有一定的参考价值。
我有一个看起来像这样的文件:
year population
1952 120323
1953 136688
1954 161681
.... .....
我想找到那个人口比上一年增加最多的年份。
我尝试了以下代码,但得到了NoSuchElementException
,但不确定为什么:
String path = "filePath";
File file = new File(filePath);
Scanner sc = new Scanner(file);
int y = 0, y1, y2, p1, p2, diff = 0;
while(sc.hasNext()){
if(sc.next().equals("year") || sc.next().equals("population")){
break;
}else{
y1 = Integer.parseInt(sc.next());
p1 = Integer.parseInt(sc.next());
y2 = Integer.parseInt(sc.next()); // this line throws the exception
p2 = Integer.parseInt(sc.next());
if(p2 - p1 > diff){
diff = y2-y1;
y = y2;
}
}
}
System.out.println(y);
String path = "filePath";
File file = new File (filePath);
Scanner sc = new Scanner(file);
long year = 0L, population = 0L, largestDiff = 0L;
while (sc.hasNext()) {
String line = sc.nextLine();
if (line.startsWith("year")) {
continue;
} else {
String[] parts = line.split(" +"); // Note the space before "+"
long currentYear = Long.parseLong(parts[0]);
long currentPopulation = Long.parseLong(parts[1]);
long diff = currentPopulation - population;
if (dif > largestDiff) {
largestDiff = diff;
year = currentYear;
population = currentPopulation
}
}
}
System.out.println(year);
System.out.println(largestDiff);
以上是关于Java-处理文件中的数据的主要内容,如果未能解决你的问题,请参考以下文章
LockSupport.java 中的 FIFO 互斥代码片段
如何从 Firebase 获取数据到 Recyclerview 中的片段?
如何使用java将数据从片段传递到android中的另一个片段?
Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理(代码片段