package com.mir.video.socket;

import java.io.BufferedOutputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.Socket;

import com.mir.video.utils.Common;

/**
 * ClassName:FileSocketWrite
 * 
 * @author <font color="red">Edson</font>
 * @version
 * @since Ver 1.1
 * @Date 2014年6月27日 下午6:12:38
 * 
 * @see
 */
public class FileSocketWrite extends Thread {
	private Socket socket;
	// 项目路径
	private String userDir = System.getProperty("user.dir");
	// 系统分隔符
	private String se = System.getProperty("file.separator");
	// 得到图片总数
	private Integer count = Common.getFileCount();
	private byte[] buf = new byte[1024 * 1024 * 10];

	FileInputStream in = null;
	InputStream sin = null;
	DataOutputStream out = null;

	File file = null;

	/**
	 * Creates a new instance of FileSocketWrite.<br>
	 * 
	 * @param socket
	 */
	public FileSocketWrite(Socket socket) {
		this.socket = socket;
	}

	@Override
	public void run() {
		try {
			// 通过socket得到流
			sin = socket.getInputStream();
			out = new DataOutputStream(new BufferedOutputStream(
					socket.getOutputStream()));

			String path = userDir + se + "image" + se + "康美之恋 0001.jpg";
			for (int i = 1; i < count; i++) {
				// 阻塞,客户端发送消息才继续执行(项目中其实可以携带一些参数)
				socket.getInputStream().read();
				if (i < 10)
					path = userDir + se + "image" + se + "康美之恋 000" + i
							+ ".jpg";
				else if (i < 100)
					path = userDir + se + "image" + se + "康美之恋 00" + i + ".jpg";
				else if (i < 1000)
					path = userDir + se + "image" + se + "康美之恋 0" + i + ".jpg";
				else
					path = userDir + se + "image" + se + "康美之恋 " + i + ".jpg";
				file = new File(path);
				in = new FileInputStream(file);
				// 写出文件长度
				out.writeLong(file.length());
				out.flush();
				// 写出文件名
				// out.writeUTF(file.getName());
				// out.flush();
				int len = 0;
				//写出文件
				while ((len = in.read(buf)) != -1) {
					out.write(buf, 0, len);
				}
				out.flush();
			}
			//完毕之后关闭流<输入流其实可以只用一个的,我只是嫌麻烦>
			in.close();
			sin.close();
			out.close();
			socket.close();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}
}
最近下载更多
myj2006  LV11 2019年8月30日
18089237297  LV3 2019年4月26日
pzg8616235  LV8 2018年9月10日
lhyi23  LV1 2018年6月11日
华丽的孤单331  LV9 2018年6月4日
zs3480  LV11 2018年2月3日
15943876586  LV17 2017年2月7日
都市书  LV4 2016年11月15日
gjynewer  LV15 2016年9月2日
gutong  LV10 2015年10月3日
最近浏览更多
dapeng0011  LV13 2月25日
飞翔的面包片  LV12 2023年12月19日
pangzhihui  LV12 2023年12月15日
lironggang  LV38 2023年6月13日
aq384419 2023年4月15日
暂无贡献等级
超维智能编程  LV6 2023年2月26日
nywgzhc  LV10 2022年11月20日
mc0624 2022年10月13日
暂无贡献等级
爱情戴罪的羔羊  LV7 2022年9月9日
zhezhizhu123  LV1 2022年7月11日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友