上传监听类

package com.huawei.hedex.upload;

import java.io.Serializable;

/**
* 上传监听类,实现OutputStreamListener接口
* @author j65181
* @version V1.0, 2007-8-4
* @see
*/
public class UploadListener implements OutputStreamListener
{
/**
* 注释内容
*/
private static final long serialVersionUID = 4780612136871889921L;

// 保存状态的内部类对象
private FileUploadStats fileUploadStats = new FileUploadStats();

/**
* 构造方法,传入文件流总大小
* @param totalSize
*/
public UploadListener(long totalSize)
{
fileUploadStats.setTotalSize(totalSize);
}

public void start()
{
// 设置当前状态为开始
fileUploadStats.setCurrentStatus("start");
}

public void bytesRead(int byteCount)
{
// 将已读取的数据保存到状态对象中
fileUploadStats.incrementBytesRead(byteCount);
// 设置当前的状态为读取过程中
fileUploadStats.setCurrentStatus("reading");
}

public void error(String s)
{
// 设置当前状态为出错
fileUploadStats.setCurrentStatus("error");
}

public void done()
{
// 设置当前已读取数据等于总数据大小
fileUploadStats.setBytesRead(fileUploadStats.getTotalSize());
// 设置当前状态为完成
fileUploadStats.setCurrentStatus("done");
}

public FileUploadStats getFileUploadStats()
{
// 返回当前状态对象
return fileUploadStats;
}

/**
* 用来保存上传文件的状态
* @author j65181
* @version V1.0, 2007-8-4
* @see
*/
public static class FileUploadStats implements Serializable
{
/**
* 注释内容
*/
private static final long serialVersionUID = -6689000695807341372L;

//总数据的大小
private long totalSize = 0;

//已读数据大小
private long bytesRead = 0;

//开始读取的时间
private long startTime = System.currentTimeMillis();

//默认的状态
private String currentStatus = "none";

//获得已经上传得时间
public long getElapsedTimeInSeconds()
{
return (System.currentTimeMillis() - startTime) / 1000;
}

public void incrementBytesRead(int byteCount)
{
this.bytesRead += byteCount;
}

/**
* @return the totalSize
*/
public long getTotalSize()
{
return totalSize;
}

/**
* @param totalSize the totalSize to set
*/
public void setTotalSize(long totalSize)
{
this.totalSize = totalSize;
}

/**
* @return the currentStatus
*/
public String getCurrentStatus()
{
return currentStatus;
}

/**
* @param currentStatus the currentStatus to set
*/
public void setCurrentStatus(String currentStatus)
{
this.currentStatus = currentStatus;
}

/**
* @return the bytesRead
*/
public long getBytesRead()
{
return bytesRead;
}

/**
* @param bytesRead the bytesRead to set
*/
public void setBytesRead(long bytesRead)
{
this.bytesRead = bytesRead;
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值