题目
(字节流, Buffered Reader)完成下面操作
在当前目录下创建一个 worldcup. txt的文本文件,其格式如下
2006/意大利
2002/巴西
该文件采用“年份/世界杯冠军”的方式保存每一年世界杯冠军的信息。
要求:读入该文件的基础上,让用户输入一个年份,输出该年的世界杯冠军。如果该年没有举办世界杯,
则输出“没有举办世界杯
import java.io.*;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class TestDemo {
public static void main(String[] args) throws IOException {
BufferedReader br = null;
Map<String, String> map = new HashMap<String, String>();//创建一个map集合
try {
FileInputStream fis = new FileInputStream("Files\\worldcup.txt");//文件路径
InputStreamReader isr = new InputStreamReader(fis);//创建一个桥转换流
br = new BufferedReader(isr);//字符过滤流
String s;
while ((s = br.readLine()) != null) {//
String[] ss = s.split("/");//把存入的信息做字符串拆分成年份和国家
map.put(ss[0], ss[1]);//把国家和年份分别放入集合
}
} catch (Exception e) {
e.getStackTrace();
} finally {
if (br != null) {//非空判断
br.close();//刷新并关闭流
}
}
Scanner sc = new Scanner(System.in);//控制台输入
System.out.print("请输入要查询世界杯的年份:");
String year = sc.nextLine();
if (map.containsKey(year)) {//从map集合中找key值,只要输入的年份等于对应的key就打印
System.out.println(map.get(year));//返回指定键所映射的值(国家)
} else {
System.out.println("没有举办世界杯!");
}
}
}