gpt4 book ai didi

java - 使用 TCP 通过网络传输文件(加快传输速度)

转载 作者:行者123 更新时间:2023-12-01 20:24:18 27 4
gpt4 key购买 nike

我一直在尝试通过Socket 连接发送一个大文件,但它运行缓慢,我想知道是否可以以某种方式优化此代码以提高传输速度。

这是我发送文件的代码:

byte[] buffer = new byte[65536];
int number;

while ((number = fileInputStream.read(buffer)) != -1) {
socketOutputStream.write(buffer, 0, number);
}

socketOutputStream.close();
fileInputStream.close();

这是我用来在另一台机器上接收文件的:

byte[] buffer = new byte[65536];

InputStream socketStream= clientSocket.getInputStream();
File f=new File("C:\\output.dat");

OutputStream fileStream=new FileOutputStream(f);

while ((number = socketStream.read(buffer)) != -1) {
fileStream.write(buffer,0,number);
}

fileStream.close();
socketStream.close();

我认为写入文件流占用了大部分时间。任何人都可以提供任何加快此代码速度的建议。

最佳答案

除了 close 语句缺少 finally block 之外,该代码没有任何明显的错误。

多少数据需要多长时间?不太可能是 FileOutputStream 花费了时间 - 更有可能是网络速度慢。您可能可以并行地从网络读取数据并写入文件系统,但这需要大量工作才能完成,而且在我看来,它不太可能带来那么多好处。

关于java - 使用 TCP 通过网络传输文件(加快传输速度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10147094/

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