⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 recvfilethread.java

📁 一个仿qq的程序源码 一个用纯java开发的
💻 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 + -