gpt4 book ai didi

Java:通过 TCP 传输文件

转载 作者:行者123 更新时间:2023-11-30 11:03:41 26 4
gpt4 key购买 nike

我正在尝试从服务器向客户端发送文件,尤其是大文件。我可以发送小文件,但 atm 大文件不起作用。

服务器

Socket socket = serverSocket.accept();
byte[] data = new byte[(int)myFile.length()];

FileInputStream fis = new FileInputStream(myFile);
BufferedInputStream bis = new BufferedInputStream(fis);
bis.read(data, 0, data.length);

OutputStream oStream = socket.getOutputStream();
oStream.write(data, 0, data.length);

客户端

byte[] data = new byte[4096];
InputStream is = socket.getInputStream();
FileOutputStream fos = new FileOutputStream("output.txt");
BufferedOutputStream bos = new BufferedOutputStream(fos);

int bytesRead = is.read(data, 0, data.length);
int counter = bytesRead;

// while (-1 != (bytesRead = is.read(data, 0, data.length)))
// {
// bos.write(data, 0, bytesRead);
// }

bos.write(data, 0, bytesRead);

使用这段代码,我能够成功传输一个简单的文本文件。注释掉的部分未注释(并且不包括最后一行)我认为我仍然能够发送一个简单的文本文件以及像 200mb 视频这样的大文件。显然,它失败了,我在这里。希望有人能帮帮我。

编辑:while 循环错误(没有最后一行)是 txt 文件中没有写入任何内容

最佳答案

摆脱第一次读取和最后一次写入,只使用注释掉的代码。这是唯一实际有效的代码。

关于Java:通过 TCP 传输文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30274121/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com