帮我写出java udp 发送一个大文件的代码
时间: 2023-03-13 13:29:08 浏览: 71
以下是一个示例:import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;public class UDPSender {
// 文件名
private static String filename = "D:/example.txt";
// 发送端口
private static int port = 8821;
// 接收端IP
private static String destIP = "127.0.0.1"; public static void main(String[] args) throws IOException {
// 创建文件对象
File file = new File(filename);
// 创建文件输入流
FileInputStream fis = new FileInputStream(file);
// 创建缓冲输入流
BufferedInputStream bis = new BufferedInputStream(fis);
// 创建字节输出流
ByteArrayOutputStream bos = new ByteArrayOutputStream(1024);
// 读取文件
byte[] buffer = new byte[1024];
int len;
while ((len = bis.read(buffer)) != -1) {
bos.write(buffer, 0, len);
}
// 关闭流
fis.close();
bis.close();
bos.close();
// 获取文件字节数组
byte[] data = bos.toByteArray();
// 创建数据报
DatagramPacket dp = new DatagramPacket(data, data.length, InetAddress.getByName(destIP), port);
// 创建UDP Socket
DatagramSocket ds = new DatagramSocket();
// 发送数据
ds.send(dp);
// 关闭Socket
ds.close();
}
}