我正在制作一个文件传输程序,它需要很长时间才能传输我制作的这张 800kb 测试图片。显然我不想为每 mb 的数据花费 30 分钟,所以我很好奇是否有任何方法可以加速我的代码或 Java。我听说过分配额外的 RAM,但从未研究过。
如果有人能为我的代码找到更好的算法,我将不胜感激,否则我可能不得不转向 C++ 或 C 并重试。
服务器代码块:
if(file.exists()){
for(long l=0;l<file.length();l++){
out.writeByte(fIS.read());
}
}
其中 fIS 是 FileInputStream,out 是传出的 DataOutputStream。其余代码基本上是发送长度和标志,但如果需要,我可以添加。
客户代码:
b = new byte[len];
for(int x=0;x<len;x++){
b[x] = dIS.readByte();
}
fOS.write(b);
其中 len 是预期从服务器读取的文件长度,b 是构成文件的字节数组,dIS 是来自服务器的输入流,fOS 是 FileOutputStream。
我也刚刚尝试将 Readers 和 readLine() 与 writeChars() 和 readChar() 一起使用,但这似乎等同于同一件事。