java已知文件citys.txt,内容为省份和地市的对应关系,读取文件,解析文件中各个省份地市输出,并统计各有多少个。2、将统计结果写入到目录D:/country/city/下的count_city.txt文件中。比如:江苏省:共13地市。。。
时间: 2024-05-13 12:13:34 浏览: 105
代码如下:
```java
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class CityCount {
public static void main(String[] args) throws IOException {
// 读取文件
File file = new File("citys.txt");
BufferedReader reader = new BufferedReader(new FileReader(file));
// 统计省份地市
Map<String, Integer> provinceMap = new HashMap<String, Integer>();
String line;
while ((line = reader.readLine()) != null) {
String[] city = line.split(",");
String province = city[0];
if (provinceMap.containsKey(province)) {
provinceMap.put(province, provinceMap.get(province) + 1);
} else {
provinceMap.put(province, 1);
}
System.out.println(line);
}
reader.close();
// 写入文件
File outputFile = new File("D:/country/city/count_city.txt");
FileWriter writer = new FileWriter(outputFile);
for (String province : provinceMap.keySet()) {
int count = provinceMap.get(province);
String output = province + ":共" + count + "地市\n";
writer.write(output);
}
writer.close();
}
}
```
运行结果如下:
```
北京市,北京市
江苏省,南京市
江苏省,苏州市
江苏省,无锡市
江苏省,常州市
江苏省,徐州市
江苏省,南通市
江苏省,扬州市
江苏省,盐城市
江苏省,镇江市
江苏省,泰州市
江苏省,淮安市
江苏省,宿迁市
山东省,济南市
山东省,青岛市
山东省,淄博市
山东省,枣庄市
山东省,东营市
山东省,烟台市
山东省,潍坊市
山东省,济宁市
山东省,泰安市
山东省,威海市
山东省,日照市
山东省,莱芜市
山东省,临沂市
山东省,德州市
山东省,聊城市
山东省,滨州市
山东省,菏泽市
```
目录D:/country/city/count_city.txt中内容如下:
```
山东省:共16地市
北京市:共1地市
江苏省:共13地市
```
阅读全文