JAVA IO之简单创建手机通讯录(可导入手机)

利用IO创建手机通讯录

学习IO之后可以进行很多实际性的操作,像文件拷贝,可以从理论到实际,学的东西好像一下就可以触碰,不再单单是些枯燥的语法,算法。这样感觉学习java变得更加有趣。
言归正传,如何利用IO简单实现手机通讯录?
基础知识肯定要有:>JavaSE高级开发之JavaIO<
有了对IO的基础知识,那么接下来就着手做吧,首先,先得知道手机通讯录内部是个什么构造:

    BEGIN:VCARD
    VERSION:3.0
    N;CHARSET=UTF-8:Jan
    FN;CHARSET=UTF-8:Jan
    TEL;TYPE=CELL:1333333333
    END:VCARD

在通讯录文件中,每一个人的保存方式都是这样的一个单独的模块,BEGIN:VCARDVERSION:3.0END:VCARD是格式控制,告诉手机这是一个数据模块,保存了一个完整的联系人。N;CHARSET=UTF-8:Jan FN;CHARSET=UTF-8:Jan保存的是联系人姓名,TEL;TYPE=CELL:1333333333里面保存了联系人手机号,这里面需要修改的内容仅仅是Jan1333333333,其他的都是格式。

public class Test {
    public static void main(String[] args) throws IOException {
        File file = new File("C:/Users/wrinkle/Desktop/content.vcf");//实例化File类对象
        if( ! file.exists()) {//文件判断,没有则生成
            file.createNewFile();
        }
        if(! file.getParentFile().exists()) {//路径判断,没有则创建
            file.getParentFile().mkdirs();
        }
        Scanner scanner = new Scanner(System.in);//用Scanner类实例化输入,System.in从键盘读取数据
        String n = new String();//接收名字
        String num = new String();//接收手机号
        System.out.println("Please input name:>");//提示信息
        n = scanner.next();//接收名字
        System.out.println("Please input num:>");//提示
        num =scanner.next();//接收手机号
        content(file, n, num);//生成通讯录的方法
        scanner.close();//关闭Scanner
    }
    public static void content(File file,String n,String num) throws IOException {
        //通讯录格式
//      BEGIN:VCARD
//      VERSION:3.0
//      N;CHARSET=UTF-8:张三
//      FN;CHARSET=UTF-8:张三
//      TEL;TYPE=CELL:12345678910
//      END:VCARD
        String N = "N;CHARSET=UTF-8:";//必须加
        N = N + n;//追加名字,其实用StingBuilder更好,不产生垃圾空间
        String FN = "FN;CHARSET=UTF-8:";//必须加上
        FN = FN +n;
        String TEL = "TEL;TYPE=CELL:";
        TEL = TEL + num;//追加手机号
        OutputStream out = new FileOutputStream(file,true);//实现追加输出
        PrintStream prin = new PrintStream(out, true,"UTF-8");
        prin.println("BEGIN:VCARD");//按照格式打印出来
        prin.println("VERSION:3.0");
        prin.println(N);
        prin.println(FN);
        prin.println(TEL);
        prin.println("END:VCARD");
        out.close();
        prin.close();//打印流也需要手动关闭
    }
}

这样,一个简单手机通讯录生成器就写好了,发给手机测试一下。
JAVA IO之简单创建手机通讯录(可导入手机)_第1张图片
手机接收
JAVA IO之简单创建手机通讯录(可导入手机)_第2张图片

成功导入了哈,不过代码还有好多要优化的地方,比如电话号码输入是否是数字检测,以及重名重号检测,还有就是删、插、改的功能添加等。
Github源码>点我<

你可能感兴趣的:(教程,学习,经验,奇技淫巧)