📄 recvfilethread.java
字号:
package qianqian.p2pchat.filetrans;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import qianqian.p2pchat.constant.Const;
import qianqian.p2pchat.control.P2PConversation;
import qianqian.p2pchat.io.SafePrintWriter;
public class RecvfileThread extends Thread {
private P2PConversation p2pConvs;
private SafePrintWriter out;
private InputStream in;
private File fileToRecv;
private static boolean OK = true;
public RecvfileThread(InputStream in, SafePrintWriter out, File saveFile,
P2PConversation p2pConvs) {
this.p2pConvs = p2pConvs;
this.in = in;
this.out = out;
fileToRecv = saveFile;
}
public static void forceOff() {
OK = false;
}
private void closeConnection() {
try {
if(in != null)
in.close();
if(out != null)
out.close();
} catch (Exception e) {
}
}
public void run() {
byte[] buffer = new byte[Const.FileBufSize];
int len = 0;
long fileSize = 0, show = -1;
try {
FileOutputStream stream = new FileOutputStream(fileToRecv, true);
while (!isInterrupted() && OK && (len = in.read(buffer)) != -1) {
stream.write(buffer, 0, len);
stream.flush();
fileSize += len;
if(++show % Const.FileBufSize == 0)
p2pConvs.setProgress(fileSize);
}
stream.close();
closeConnection();
} catch (Exception e) {
}
p2pConvs.transOver();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -