文档章节

java 时间简单电话簿 初学者入门(2) 读写文件

颓废的幻想者
 颓废的幻想者
发布于 2016/04/04 20:12
字数 372
阅读 61
收藏 4
package test;

import java.io.*;
import java.util.*;
import java.util.Map.Entry;

public class MirrorTelphoneBook {

    public static Scanner in = new Scanner(System.in);
    
    // 用来保存 电话簿信息
    public static Map<String, String> phoneInfoMap = new LinkedHashMap<String, String>();

    private final static String fileName = "D:\\Tel.txt";
    
    // 系统分割符
    String l = System.getProperty("line.separator");
    
    public static void main(String[] args) {
        
        MirrorTelphoneBook instance = new MirrorTelphoneBook();
        // 首先初始化内存将文件数据读入phoneInfoMap
        instance.read(fileName);
        do {
            System.out.println("欢迎使用本电话簿");
            int job = 0;
            System.out.println("功能选择:1.存储 2.查询  0.退出");
            job = in.nextInt();
            switch (job) {
                case 0: break;
                case 1: instance.saveNum(); break;
                case 2: instance.getNum(); break;
            }
            System.out.println("是否要继续?(yes/no)");
        } while (in.next().equals("yes"));
        instance.writeIn();
        System.out.println("拜拜~");
        System.exit(0);
    }

    /**
     * Description: 保存电话<br>
     * 
     * @author wangmingyang<br>
     * @taskId <br>
     * <br>
     */
    public void saveNum() {
        do {
            System.out.println("姓名?");
            String k = in.next();
            System.out.println("电话?");
            String v = in.next();
            phoneInfoMap.put(k, v);
            System.out.println("是否要继续保存?(yes/no)");
        } while (in.next().equals("yes"));
    }

    public void getNum() {

        do {
            System.out.println("请输入需要查询的姓名");
            String k = in.next();
            if (phoneInfoMap.get(k) != null) {
                System.out.println(k + "的电话是" + phoneInfoMap.get(k));
            } else {
                System.out.println("没搜到该联系人");
            }
            System.out.println("是否要继续查询(yes/no)");
        } while (in.next().equals("yes"));

    }

    /**
     * Description: 将文件内容读入phoneInfoMap中<br>
     * 
     * @author wangmingyang<br>
     * @taskId <br>
     * <br>
     */
    public void read(String fileName) {

        try {
            
            File file =new File(fileName);
            if(!file.exists())
            {       
                file.createNewFile();
            }
            
            FileReader e = new FileReader(fileName);
            BufferedReader bf = new BufferedReader(e);
            String t = "";
            while ((t = bf.readLine()) != null) {
                phoneInfoMap.put(t.split(":")[0], t.split(":")[1]);
            }
            bf.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * Description: 将phoneInfoMap写进文件<br>
     * 
     * @author wangmingyang<br>
     * @taskId <br>
     * <br>
     */
    public void writeIn() {

        try {
            StringBuffer e = new StringBuffer();
            FileWriter tel = new FileWriter("D:\\Tel.txt");
            Set<?> set = phoneInfoMap.entrySet();
            Iterator<?> i = set.iterator();
            while (i.hasNext()) {
                Entry<?, ?> entry = (Entry<?, ?>) i.next();
                e.append(entry.getKey() + ":" + entry.getValue() + this.l);
            }
            tel.write(e.toString());
            tel.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}



© 著作权归作者所有

颓废的幻想者
粉丝 30
博文 62
码字总数 18405
作品 0
南京
程序员
私信 提问
Java程序员必读书单,家族又添新成员

点击关注异步图书,置顶公众号 每天与你分享IT好书 技术干货 职场知识 参与文末话题讨论,每日赠送异步图书。 ——异步小编 有些革命出其不意地吸引了全世界的眼球。Twitter、Linux操作系统和...

异步社区
2018/05/09
0
0
学.Net还是学Java? 努力,坚持就会成功!加油!!

解惑:学.Net还是学Java? 更新时间:2012年06月06日15时14分 来源:传智播客.Net学院 经常有初学者问出“哪门语言更有前途?是java好还是.net好?大公司用哪门语言的多?学哪个编程语言工资高...

Innoce丶
2012/11/07
427
1
学.net 的看看吧

解惑:学.Net还是学Java? 更新时间:2012年06月06日15时14分 来源:传智播客.Net学院 经常有初学者问出“哪门语言更有前途?是java好还是.net好?大公司用哪门语言的多?学哪个编程语言工资高...

blesszhaoyang
2012/11/06
672
2
云栖社区专家系列课——Java必修课第一讲

本节课为 Java必修课第一讲。在本节课中,最课程创始人、微软MVP陆敏枝为了大家介绍了当前Java行业的IT人才供需情况、Java基本语法、JDK的下载与安装、Java环境变量的配置以及第一个Java程序...

笑傲江湖lcx
2018/07/03
0
0
如何开始学习计算机编程

你想学习计算机编程?现在比以前容易(便宜)多啦!90年我学编程的时候,花了$300买一个编译器包,还是“标准版”。那时候这似乎是你学习C++的唯一选择。现在都变了好多了。 如果做商业开发,...

oschina
2013/01/20
7.6K
17

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
昨天
5
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
昨天
8
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
昨天
10
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
昨天
6
0
PHP+Ajax微信手机端九宫格抽奖实例

PHP+Ajax结合lottery.js制作的一款微信手机端九宫格抽奖实例,抽奖完成后有收货地址添加表单出现。支持可以设置中奖概率等。 奖品列表 <div class="lottery_list clearfix" id="lottery"> ......

ymkjs1990
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部