zoukankan      html  css  js  c++  java
  • 【8】JAVA---地址App小软件(AddrDaoFile .class)(数据层)

    实现数据进行文件的存储和读写。
    本软件也就到此结束了。
    没多少可以讲的。
    因为这个小软件也就8个类,主要学习的也就是一个分层思想的简单应用。

    package cn.hncu.addr.dao;
    
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.util.ArrayList;
    
    public class AddrDaoFile {
        static final String FILE_NAME = "chx.data";
    
        public static Object[] read() {
            ArrayList<Object> list = new ArrayList<Object>();
            ObjectInputStream in = null;
            try {
                in = new ObjectInputStream(new FileInputStream(FILE_NAME));
    
                Object obj;
                //**对象流的读不能用available()<=0来判断读完数据,而应该用异常来确定是否读到结束
                while(true){
                    obj = in.readObject();
                    list.add(obj);
                }
            } catch (Exception e) {
                //读到文件末尾,就是出异常,通过这来判断是否读到结束
                //因此,本程序中,这里是正常的文件读取结束,不是我们之前认为的出异常--所以不输出异常信息
                //e.printStackTrace();
            }finally{
                try {
                    if(in!=null){
                        in.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            Object objs[] =list.toArray();
            if(objs==null){
                objs = new Object[0];
            }
            return objs;
        }
    
        public static boolean write(Object[] objs) {
            ObjectOutputStream out = null;
            try {
                out = new ObjectOutputStream(new FileOutputStream(FILE_NAME));
                for(Object obj:objs){
                    out.writeObject(obj);
                }
            } catch (Exception e) {
                e.printStackTrace();
                return false;
            }finally{
                if(out!=null){
                    try {
                        out.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
    
            }
            return true;
        }
    
    }
    
  • 相关阅读:
    yii2.0 邮件发送如何配置
    php(ThinkPHP)实现微信小程序的登录过程
    微信小程序开发
    一个中高级PHP工程师所应该具备的能力
    如何解决PHP的高并发和大流量的问题
    对于PHP面试知识点的小结
    Centos7 redis设置开机自启动
    CENTOS7下REDIS设置密码、开放远程访问权限
    CentOS7安装Redis
    SQL Server 2012允许远程连接(Windows Server 2016)
  • 原文地址:https://www.cnblogs.com/webmen/p/5739340.html
Copyright © 2011-2022 走看看