java中如何运用data类_Java代码中DataInputStream和DataOutputStream类如何使用呢?

摘要:

下文使用Java代码中DataInputStream和DataOutputStream类的用法分享,如下所示:

DataInputStream和DataOutputStream类简介:

DataInputStream类:使用与机器无关的方式从基础输入流中读取原始Java数据类型

DataOutputStream类:使用可移植的方式将原始Java数据类型写入输出流

例:

Java 中DataInputStream和DataOutputStream类的示例

package com.maomao365;

import java.io.DataInputStream;

import java.io.DataOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

/**

* @author maomao365

*/

public class DataInputOutputStreamExample {

public static void main(String[] args) {

File file = new File("maomaotest.txt");

/*写数据至文件中*/

FileOutputStream fileOutputStream = null;

DataOutputStream dataOutputStream = null;

try {

fileOutputStream=new FileOutputStream(file);

dataOutputStream=new DataOutputStream(fileOutputStream);

dataOutputStream.writeInt(888);

dataOutputStream.writeDouble(888.999);

dataOutputStream.writeChar('maomao365.com');

dataOutputStream.flush();

} catch (IOException e) {

e.printStackTrace();

}finally {

try {

if(fileOutputStream!=null){

fileOutputStream.close();

}

if(dataOutputStream!=null){

dataOutputStream.close();

}

} catch (Exception e) {

e.printStackTrace();

}

}

/*从文件中读取数据*/

FileInputStream fileInputStream = null;

DataInputStream dataInputStream = null;

try {

fileInputStream = new FileInputStream(file);

dataInputStream = new DataInputStream(fileInputStream);

System.out.println(dataInputStream.readInt());

System.out.println(dataInputStream.readDouble());

System.out.println(dataInputStream.readChar());

} catch (IOException e) {

e.printStackTrace();

}finally {

try {

if(fileInputStream!=null){

fileInputStream.close();

}

if(dataInputStream!=null){

dataInputStream.close();

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

}

TCP多线程编程方式和DataOutputStreamDataInputStream可用于实现基于Java的Socket编程,以下是实现步骤: 1. 创建ServerSocket对象,指定端口号,并调用accept()方法等待客户端连接。 2. 当客户端连接后,ServerSocket.accept()将返回一个Socket对象,可以利用该对象创建输入输出流。 3. 在服务器端,创建一个线程来处理连接的客户端,使用Socket对象的输入输出流来进行通信。 4. 在客户端,创建Socket对象连接服务器端,并使用Socket对象的输入输出流来进行通信。 5. 在服务器端,使用DataOutputStream向客户端发送数据,可以使用writeInt()、writeDouble()等方法发送不同型的数据。 6. 在客户端,使用DataInputStream接收服务器端发送的数据,可以使用readInt()、readDouble()等方法接收不同型的数据。 7. 在通信结束后,关闭Socket、ServerSocket对象和输入输出流。 以下是一个简单的示例代码: 服务器端: ```java import java.io.*; import java.net.*; public class Server { public static void main(String[] args) throws IOException { ServerSocket serverSocket = new ServerSocket(12345); while (true) { Socket socket = serverSocket.accept(); new Thread(() -> { try { DataOutputStream dos = new DataOutputStream(socket.getOutputStream()); dos.writeInt(123); dos.writeDouble(3.14); dos.writeUTF("Hello, client!"); dos.flush(); DataInputStream dis = new DataInputStream(socket.getInputStream()); int i = dis.readInt(); double d = dis.readDouble(); String s = dis.readUTF(); System.out.printf("Received data: %d, %f, %s\n", i, d, s); dis.close(); dos.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } }).start(); } } } ``` 客户端: ```java import java.io.*; import java.net.*; public class Client { public static void main(String[] args) throws IOException { Socket socket = new Socket("localhost", 12345); DataInputStream dis = new DataInputStream(socket.getInputStream()); int i = dis.readInt(); double d = dis.readDouble(); String s = dis.readUTF(); System.out.printf("Received data: %d, %f, %s\n", i, d, s); DataOutputStream dos = new DataOutputStream(socket.getOutputStream()); dos.writeInt(456); dos.writeDouble(2.718); dos.writeUTF("Hello, server!"); dos.flush(); dis.close(); dos.close(); socket.close(); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值