java网络编程传数组
时间: 2023-10-06 16:08:38 浏览: 72
在Java的网络编程中,传输数组可以使用对象流(ObjectOutputStream / ObjectInputStream)或字节流(DataOutputStream / DataInputStream)来实现。
使用对象流传输数组的步骤如下:
1. 在发送端,创建一个对象输出流(ObjectOutputStream)并将其连接到网络输出流,例如Socket的输出流。
2. 将要传输的数组写入对象输出流。
3. 在接收端,创建一个对象输入流(ObjectInputStream)并将其连接到网络输入流,例如Socket的输入流。
4. 从对象输入流中读取传输的数组。
示例代码如下:
发送端(服务器):
```java
int[] array = {1, 2, 3, 4, 5};
try (Socket socket = new Socket("localhost", 12345);
ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream())) {
out.writeObject(array);
out.flush();
} catch (IOException e) {
e.printStackTrace();
}
```
接收端(客户端):
```java
try (ServerSocket serverSocket = new ServerSocket(12345);
Socket socket = serverSocket.accept();
ObjectInputStream in = new ObjectInputStream(socket.getInputStream())) {
int[] array = (int[]) in.readObject();
// 使用接收到的数组
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();}
```
使用字节流传输数组的步骤如下:
1. 在发送端,创建一个数据输出流(DataOutputStream)并将其连接到网络输出流,例如Socket的输出流。
2. 使用数据输出流将数组的长度写入网络输出流。
3. 使用数据输出流将数组的每个元素写入网络输出流。
4. 在接收端,创建一个数据输入流(DataInputStream)并将其连接到网络输入流,例如Socket的输入流。
5. 从数据输入流中读取数组的长度。
6. 从数据输入流中读取数组的每个元素。
示例代码如下:
发送端(服务器):
```java
int[] array = {1, 2, 3, 4, 5};
try (Socket socket = new Socket("localhost", 12345);
DataOutputStream out = new DataOutputStream(socket.getOutputStream())) {
out.writeInt(array.length);
for (int i : array) {
out.writeInt(i);
}
out.flush();
} catch (IOException e) {
e.printStackTrace();
}
```
接收端(客户端):
```java
try (ServerSocket serverSocket = new ServerSocket(12345);
Socket socket = serverSocket.accept();
DataInputStream in = new DataInputStream(socket.getInputStream())) {
int length = in.readInt();
int[] array = new int[length];
for (int i = 0; i < length; i++) {
array[i] = in.readInt();
}
// 使用接收到的数组
} catch (IOException e) {
e.printStackTrace();
}
```
这些示例代码展示了如何在Java的网络编程中传输数组,你可以根据自己的需求进行修改和扩展。