- 工具类意义描述
- 对象序列化在实际开发场景中使用非常多,经常用于对象缓存、IO加速等方面,同时也是很开发工程师比较薄弱的一个环节,故工具之。
- 代码实现
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
/**
* 对象序列化工具类实现
* @author tianliang
*
* @date 2019年6月14日
*/
public class ObjectIOUtil {
public static void writeObjectToFile(Object obj, String filePath)
throws IOException {
FileOutputStream fos = new FileOutputStream(filePath);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(obj);
oos.flush();
oos.close();
}
public static void writeObjectToFile(Object obj, int byteBufferSize,
String filePath) throws IOException {
// FileOutputStream fos = new FileOutputStream(filePath);
// ObjectOutputStream oos = new ObjectOutputStream(fos);
// oos.writeObject(obj);
// oos.flush();
// oos.close();
byte[] byteArray = convertObjectToByteArray(obj, byteBufferSize);
FileOperatorUtil.writeByteArrayToFile(byteArray, filePath);
}
public static byte[] convertObjectToByteArray(Object obj)
throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(obj);
oos.flush();
oos.close();
return baos.toByteArray();
}
public static byte[] convertObjectToByteArray(Object obj, int byteBufferSize)
throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream(byteBufferSize);
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(obj);
oos.flush();
oos.close();
return baos.toByteArray();
}
public static Object convertByteArrayToObject(byte[] byteArray)
throws ClassNotFoundException, IOException {
// 读取该文件对应的对象数据
ByteArrayInputStream bios = new ByteArrayInputStream(byteArray);
ObjectInputStream ois = new ObjectInputStream(bios);
try {
return ois.readObject();
} finally {
ois.close();
}
}
public static Object readObjectFromFile(String filePath)
throws ClassNotFoundException, IOException {
// 读取该文件对应的对象数据
FileInputStream fis = new FileInputStream(filePath);
ObjectInputStream ois = new ObjectInputStream(fis);
try {
return ois.readObject();
} finally {
ois.close();
}
}
public static Object readObjectFromFile(String filePath, int byteBufferSize)
throws ClassNotFoundException, IOException {
// 读取该文件对应的对象数据
FileInputStream fis = new FileInputStream(filePath);
byte[] byteArray = new byte[byteBufferSize];
fis.read(byteArray);
return convertByteArrayToObject(byteArray);
// ObjectInputStream ois = new ObjectInputStream(fis);
// try {
// return ois.readObject();
// } finally {
// ois.close();
// }
}
}
天亮教育是一家从事大数据云计算、人工智能、教育培训、产品开发、咨询服务、人才优选为一体的综合型互联网科技公司。
公司由一批BAT等一线互联网IT精英人士创建,
以"快乐工作,认真生活,打造IT职业技能教育的一面旗帜"为愿景,胸怀"让天下没有难找的工作"使命,
坚持"客户第一、诚信、激情、拥抱变化"的价值观,
全心全意为学员赋能提效,践行技术改变命运的初心。
更多学习讨论, 请加入
官方-天亮大数据交流-366784928
群二维码:
官方-天亮web前端交流-972788995
群二维码:
欢迎关注天亮教育公众号,大数据技术资料与课程、招生就业动态、教育资讯动态、创业历程分享一站式分享,官方微信公众号二维码:
天亮教育大数据官方群318971238,
天亮教育web前端官方群318971238,
爬虫、nlp技术qq群320349384
hadoop & spark & hive技术群297585251
教育培训官网:http://myhope365.com
项目研发业务尚云科技官网:http://shangyuninfo.com/
天亮教育公开课-从小白到大佬修成记-全系列视频地址:http://myhope365.com/news/index?id=66
天亮云课堂小程序版,微信扫码下图可直接进入学习!!!