【Java】封装带有泛型的序列化文件工具类
分析
可以用接口或者抽象类的方法,我的话会倾向于接口。
但是需要知道的是——
接口定义了一种规范;抽象类提供了一个模板。
泛型的话其实就是要我们定义带泛型的接口或者抽象类,实现的时候表明类型,针对一个特定的类型。
封装文件操作的类,自然需要单例,这是很自然的,所以需要做一下简单的实现。
实现
我们可以定义这样的一个接口,带泛型:
public interface IFileSerialization<T> {/*** 反序列化* @return*/T readObject();/*** 序列化* @param object*/void writeObject(T object);}
实现类举例一则:
import java.io.*;public class MedicineInfoMapper implements IFileSerialization<AllMedicinesMap> {private MedicineInfoMapper() {}private static MedicineInfoMapper mapper;/*** 获取单例* @return 单例*/public static MedicineInfoMapper getInstance() {if (mapper == null) {mapper = new MedicineInfoMapper();}return mapper;}/*** 反序列化从文件中读取PatientList的序列化对象*/@Overridepublic AllMedicinesMap readObject() {try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(ALL_MEDICINES_FILENAME))) {AllMedicinesMap medicinesMap = (AllMedicinesMap)ois.readObject();return medicinesMap;} catch (IOException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}return null;}/*** 序列化对象*/@Overridepublic void writeObject(AllMedicinesMap object) {try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(ALL_MEDICINES_FILENAME))) {oos.writeObject(object);} catch (IOException e) {e.printStackTrace();}}}
这样就完成了简单的单例模式(线程不安全的懒汉式),并将文件操作统一封装,带有泛型。
【Java】封装带有泛型的序列化文件工具类相关推荐
- Java读取.txt文件工具类
相关工具类代码 import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; i ...
- java io文件流序列化_Java——Properties集合,Object序列化流与反序列化流,打印流,commons-IO文件工具类...
一.properties集合 集合对象Properties类,继承Hashtable,实现Map接口,可以和IO对象结合使用,实现数据的持久存储. 特点: Hashtable的子类,map集合中的方法 ...
- 一次代码重构之旅-快速读写xml文件工具类封装
为了满足系统的灵活性,有些功能经常需要用到配置文件,一般是xml格式的居多.如何能快速读写配置文件呢? 以前都是用dom4j提供的api来读写xml文件,用dom4j读写配置文件总感觉像是在结构化的处 ...
- java常用文件工具类
java常用工具类(一) 主要是Java操作文件及及IO流的一些常用库,是Apache对java的IO包的封装,这里面文件类工具有两个非常核心的类FilenameUtils跟FileUtils,IO流 ...
- Java常用工具类---IP工具类、File文件工具类
package com.jarvis.base.util; import java.io.IOException; import java.io.InputStreamReader; import j ...
- java file ip_java常用工具类 IP、File文件工具类
本文实例为大家分享了java常用工具类的具体实现代码,供大家参考,具体内容如下 IP工具类 package com.jarvis.base.util; import java.io.IOExcepti ...
- java filehelper_Java常用工具类---IP工具类、File文件工具类
package com.jarvis.base.util; import java.io.IOException; import java.io.InputStreamReader; import j ...
- java读写excel文件poi_Java利用POI读写Excel文件工具类
本文实例为大家分享了Java读写Excel文件工具类的具体代码,供大家参考,具体内容如下 package com.test.app.utils; import java.io.File; import ...
- Java读带有BOM的UTF-8文件乱码原因及解决方法(转)
转载:http://www.linuxidc.com/Linux/2012-12/76707.htm 最近在处理文件时发现了同样类型的文件使用的编码可能是不同的.所以想将文件的格式统一一下(因为UTF ...
最新文章
- SAP 零售商品主数据修改物料组的方法
- onMeasure模式
- 建立索引要考虑的因素
- LINQ to Entities 基于方法的查询语法
- 华为修改优先级命令_VOlTE指标设定(华为网管各种命令)
- js中直接对字符串转义-用于solr ulr 关键词转义
- boost::type_erasure::tuple相关的测试程序
- 【POJ - 1463】Strategic game (树上最小点覆盖,树形dp)
- linux+sasl认证失败,51CTO博客-专业IT技术博客创作平台-技术成就梦想
- IDEA 安装插件Plugin 'Scala' is incompatible with this installation
- 杭电1495非常可乐
- 猛龙出击•东莞赛区新闻发布会隆重举行,粤港澳大湾区将迎来首场搏击盛宴...
- mybatis源码学习(二):SQL的执行过程
- 吴恩达采访人工智能大师实录
- P1125 [NOIP2008 提高组] 笨小猴 java
- go sum: verifying module: checksum mismatch
- android app开机启动画面,Android-如何设置APP开机启动(图文)
- 如何让excel表格排头一直都在_如何快速整理Excel表格?学会这一招整理表格无压力...
- 【听说】比付费软件更好的94个免费软件
- 物联网技能大赛-Ubuntu-(3)