- import java.io.FileWriter;
- import java.io.IOException;
- import java.io.PrintWriter;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.Map;
- import java.util.Set;
- import java.util.Map.Entry;
- import java.util.Scanner;
- public class StudentTest {
- public static void main(String[] args) {
- int i = 0;
- FileWriter fw = null; // 文件写变量
- String name = null; // 姓名
- String num = null; // 学号
- Scanner sin = new Scanner(System.in); // 建立Scanner构造器对象,读取键盘输出的数据
- Map<String, String> map = new HashMap<String, String>(); // 建立map映射集合
- for (i = 0; i < 3; i++) {
- String[] str = sin.next().split(","); // 通过split()方法将读入的字符串分为左右 2
- // 部分(左右相对于逗号而言)
- name = str[0].substring(1); // 取部分左串(去左括号)
- num = str[1].substring(0, str[1].length() - 1); // 取部分右串(去右括号)
- map.put(num, name); // 加入map集合中
- }
- System.out.println("姓名-学号(修改前):"); // map.entrySet()返回Map.Entry实例化的对象集
- for (Entry<String, String> m : map.entrySet()) {
- System.out.println(m.getValue() + ":" + m.getKey());
- }
- try {
- String line = System.getProperty("line.separator"); // 平台独立的换行符
- StringBuffer str = new StringBuffer();
- fw = new FileWriter("D:\\a.txt", true);
- Set<?> set = map.entrySet(); // map.entrySet()返回Map.Entry实例化的对象集
- Iterator<?> iter = set.iterator(); // 建立针对实例化对象集的迭代器
- while (iter.hasNext()) { // 迭代操作
- Map.Entry entry = (Map.Entry) iter.next();
- str.append("修改前:" + entry.getValue() + "-" + entry.getKey())
- .append(line);
- }
- fw.write(str.toString()); // 写入文件
- fw.close(); // 关闭写入文件流
- } catch (IOException e) {
- e.printStackTrace();
- }
- // 完成修改操作
- System.out.println("输入要修改的学号:");
- num = sin.next();
- System.out.println("姓名修改为:");
- name = sin.next();
- map.put(num, name);
- // 输出修改后的结果
- System.out.println("姓名-学号(修改后):");
- for (Entry<String, String> m : map.entrySet()) {
- System.out.println(m.getValue() + ":" + m.getKey());
- }
- try {
- fw = new FileWriter("D:\\a.txt", true);
- PrintWriter pw = new PrintWriter(fw);
- Set<?> set = map.entrySet();
- Iterator<?> iter = set.iterator();
- while (iter.hasNext()) {
- Map.Entry entry = (Map.Entry) iter.next();
- pw.println("修改后:" + entry.getValue() + "-" + entry.getKey()); // 打印到指定的文件中
- pw.flush(); // 刷新
- }
- pw.close(); // 关闭打印流
-
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
复制代码
仅仅是实现了功能,代码的编写可能有些乱,如果有问题,可以留言
祝好运! |