网站设计培训班如何,centos7.4 wordpress,google中文搜索引擎,pc蛋蛋游戏体验网站建设博主18年的互联网软件开发经验#xff0c;从一名程序员小白逐步成为了一名架构师#xff0c;我想通过平台将经验分享给大家#xff0c;因此博主每天会在各个大牛网站点赞量超高的博客等寻找该技术栈的资料结合自己的经验#xff0c;晚上进行用心精简、整理、总结、定稿从一名程序员小白逐步成为了一名架构师我想通过平台将经验分享给大家因此博主每天会在各个大牛网站点赞量超高的博客等寻找该技术栈的资料结合自己的经验晚上进行用心精简、整理、总结、定稿每天都会整理到12点为了就是能让大家能够真正了解该技术栈的真正原理最终从程序员成为一名真正的架构师写的不一定是全站做好的但是是全站最用心的~。
以后我会推出一些列的文章每天都会更新每天进步一点点发布顺序【java的api基础、应用、实战】-【java开源技术栈及源码分析】-【java开源技术栈整合】-【java低代码开发平台的建设】
关注【架构师成长之道】 输入“架构师视频课程”即可免费获得全套架构师全套课程 一、java.io
1.47 ObjectOutput
ObjectOutput 接口用于向流中写入对象数据。它是序列化对象的起点允许将对象写入到输出流中。
ObjectOutput 接口介绍
所有字段 没有字段因为它是一个接口。
构造方法 没有构造方法因为它是一个接口。
方法摘要 void writeObject(Object obj) throws IOException将指定的对象写入流中。
简单使用例子
以下是一个简单的例子演示了如何使用 ObjectOutput 接口将对象写入输出流中
javaCopy code
import java.io.*;
public class ObjectOutputExample {
public static void main(String[] args) {String fileName object.dat;
try (OutputStream fileOutputStream new FileOutputStream(fileName);ObjectOutput objectOutput new ObjectOutputStream(fileOutputStream)) {
// 写入对象到输出流中MyObject obj new MyObject(Hello, world!);objectOutput.writeObject(obj);
System.out.println(Object has been written to file successfully.);} catch (IOException e) {e.printStackTrace();}}
}
class MyObject implements Serializable {private static final long serialVersionUID 1L;private String data;
public MyObject(String data) {this.data data;}
Overridepublic String toString() {return MyObject{ data data \ };}
}
在上面的例子中我们首先创建了一个 MyObject 类该类实现了 Serializable 接口。然后我们使用 ObjectOutputStream 将 MyObject 对象写入到名为 object.dat 的文件中。通过调用 writeObject() 方法我们将对象写入到输出流中。
应用场景
下面列出了使用 ObjectOutput 接口的一些常见应用场景以及相应的代码实现
应用场景 1: 将对象写入文件
javaCopy code
import java.io.*;
public class WriteObjectToFile {public static void main(String[] args) {String fileName data.ser;
try (OutputStream fileOutputStream new FileOutputStream(fileName);ObjectOutput objectOutput new ObjectOutputStream(fileOutputStream)) {
// 创建并写入对象到文件MyObject obj new MyObject(Hello, world!);objectOutput.writeObject(obj);
System.out.println(Object has been written to file successfully.);} catch (IOException e) {e.printStackTrace();}}
}
class MyObject implements Serializable {private static final long serialVersionUID 1L;private String data;
public MyObject(String data) {this.data data;}
Overridepublic String toString() {return MyObject{ data data \ };}
}
应用场景 2: 将对象写入网络流
javaCopy code
import java.io.*;
import java.net.*;
public class WriteObjectToNetwork {public static void main(String[] args) {try (Socket socket new Socket(localhost, 12345);OutputStream outputStream socket.getOutputStream();ObjectOutput objectOutput new ObjectOutputStream(outputStream)) {
// 创建并写入对象到网络流MyObject obj new MyObject(Hello, world!);objectOutput.writeObject(obj);
System.out.println(Object has been written to network stream successfully.);} catch (IOException e) {e.printStackTrace();}}
}
应用场景 3: 将对象写入数据库 Blob 字段
javaCopy code
import java.io.*;
import java.sql.*;
public class WriteObjectToDatabase {public static void main(String[] args) {try (Connection connection DriverManager.getConnection(jdbc:mysql://localhost:3306/mydb, username, password);PreparedStatement preparedStatement connection.prepareStatement(INSERT INTO MyTable (object_data) VALUES (?))) {
// 创建对象并将其写入到字节数组输出流MyObject obj new MyObject(Hello, world!);ByteArrayOutputStream byteArrayOutputStream new ByteArrayOutputStream();try (ObjectOutput objectOutput new ObjectOutputStream(byteArrayOutputStream)) {objectOutput.writeObject(obj);}
// 将对象数据写入到数据库 Blob 字段preparedStatement.setBytes(1, byteArrayOutputStream.toByteArray());preparedStatement.executeUpdate();
System.out.println(Object has been written to database successfully.);} catch (SQLException | IOException e) {e.printStackTrace();}}
}
这些是使用 ObjectOutput 接口的一些常见应用场景包括将对象写入文件、网络流和数据库 Blob 字段中。
实战例子
以下是一个项目实战例子演示了如何使用 ObjectOutput 接口将对象写入文件并从文件中读取
javaCopy code
import java.io.*;
public class ObjectSerializationExample {
static class User implements Serializable {private static final long serialVersionUID 1L;
private String username;private transient String password; // 密码字段不参与序列化
public User(String username, String password) {this.username username;this.password password;}
Overridepublic String toString() {return User{ username username \ , password password \ };}}
public static void main(String[] args) {String fileName user.ser;
// 写入对象到文件writeObjectToFile(fileName);
// 从文件读取对象并处理readObjectFromFile(fileName);}
private static void writeObjectToFile(String fileName) {try (ObjectOutputStream outputStream new ObjectOutputStream(new FileOutputStream(fileName))) {User user new User(john.doe, password123);outputStream.writeObject(user);System.out.println(Object written to file successfully.);} catch (IOException e) {e.printStackTrace();}}
private static void readObjectFromFile(String fileName) {try (ObjectInputStream inputStream new ObjectInputStream(new FileInputStream(fileName))) {Object obj inputStream.readObject();if (obj instanceof User) {User user (User) obj;System.out.println(Object read from file: user);}} catch (IOException | ClassNotFoundException e) {e.printStackTrace();}}
}
在这个例子中我们定义了一个 User 类该类实现了 Serializable 接口。我们创建了一个 User 对象并将其写入到文件中然后再从文件中读取该对象。通过使用 ObjectOutputStream 和 ObjectInputStream 类我们可以很容易地将对象写入文件并从文件中读取对象。