【8】JAVA---地址App小软件(AddrDaoFile .class)(数据层)

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

实现数据进行文件的存储和读写。
本软件也就到此结束了。
没多少可以讲的。
因为这个小软件也就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;
    }

}
目录
相关文章
|
2月前
|
消息中间件 Java
【实战揭秘】如何运用Java发布-订阅模式,打造高效响应式天气预报App?
【8月更文挑战第30天】发布-订阅模式是一种消息通信模型,发送者将消息发布到公共队列,接收者自行订阅并处理。此模式降低了对象间的耦合度,使系统更灵活、可扩展。例如,在天气预报应用中,`WeatherEventPublisher` 类作为发布者收集天气数据并通知订阅者(如 `TemperatureDisplay` 和 `HumidityDisplay`),实现组件间的解耦和动态更新。这种方式适用于事件驱动的应用,提高了系统的扩展性和可维护性。
35 2
|
2月前
|
Java 容器
【Azure Function App】Java Function在运行中遇见内存不足的错误
【Azure Function App】Java Function在运行中遇见内存不足的错误
|
2月前
|
Java Maven
【Azure Function App】Java Function部署到Azure后出现中文显示乱码问题
【Azure Function App】Java Function部署到Azure后出现中文显示乱码问题
|
3月前
|
Web App开发 缓存 编解码
FFmpeg开发笔记(三十八)APP如何访问SRS推流的RTMP直播地址
《FFmpeg开发实战》书中介绍了轻量级流媒体服务器MediaMTX,适合测试RTSP/RTMP协议,但不适用于复杂直播场景。SRS是一款强大的开源流媒体服务器,支持多种协议,起初为RTMP,现扩展至HLS、SRT等。在FFmpeg 6.1之前,推送给SRS的HEVC流不受支持。要播放RTMP流,Android应用可使用ExoPlayer,需在`build.gradle`导入ExoPlayer及RTMP扩展,并根据URL类型创建MediaSource。若SRS播放黑屏,需在配置文件中开启`gop_cache`以缓存关键帧。
112 2
FFmpeg开发笔记(三十八)APP如何访问SRS推流的RTMP直播地址
|
2月前
|
Java 开发工具 git
【Azure 应用服务】本地Git部署Java项目到App Server,访问无效的原因
【Azure 应用服务】本地Git部署Java项目到App Server,访问无效的原因
|
2月前
【Azure 应用服务】App Service 配置 Application Settings 访问Storage Account得到 could not be resolved: '*.file.core.windows.net'的报错。没有解析成对应中国区 Storage Account地址 *.file.core.chinacloudapi.cn
【Azure 应用服务】App Service 配置 Application Settings 访问Storage Account得到 could not be resolved: '*.file.core.windows.net'的报错。没有解析成对应中国区 Storage Account地址 *.file.core.chinacloudapi.cn
|
2月前
|
网络协议 NoSQL 网络安全
【Azure 应用服务】由Web App“无法连接数据库”而逐步分析到解析内网地址的办法(SQL和Redis开启private endpoint,只能通过内网访问,无法从公网访问的情况下)
【Azure 应用服务】由Web App“无法连接数据库”而逐步分析到解析内网地址的办法(SQL和Redis开启private endpoint,只能通过内网访问,无法从公网访问的情况下)
|
3月前
|
JavaScript 前端开发 Java
Java入门软件及基础语法
**摘要:** - **IDEA:** IntelliJ IDEA,顶级Java开发环境,支持Java,JS,JQuery,Ajax调试. - **JDK:** Java开发包含编译器`javac`,JVM,辅助运行Java程序,核心含JRE,tools.jar,rt.jar. - **Git:** 分布式版本控制,管理源代码,支持回溯,协作,远程备份. - **基础语法:** - `if`: 控制流,单/多分支选择,可嵌套,省略单行大括号. - `switch`: 表达式匹配`case`值,执行对应代码,需`break`防穿透.
23 1
|
3月前
|
NoSQL Java Redis
软件开发常见流程之宝塔初始化安装环境配置,Lam前面不选,直接跳商城,在宝塔内点击软件商城,安Mysql5.7,安java项目管理器,安Ngnix最新版,安Redis
软件开发常见流程之宝塔初始化安装环境配置,Lam前面不选,直接跳商城,在宝塔内点击软件商城,安Mysql5.7,安java项目管理器,安Ngnix最新版,安Redis
|
3月前
|
供应链 安全 Java
软件架构一致性问题之通过软件供应链管理提升研发体验如何解决
软件架构一致性问题之通过软件供应链管理提升研发体验如何解决
40 0
下一篇
无影云桌面