📄 uploadlistener.java
字号:
package book.upload;
public class UploadListener implements OutputStreamListener
{
//保存状态的内部类对象
private FileUploadStats fileUploadStats = new FileUploadStats();
//构造方法
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;
}
//保存状态类
public static class FileUploadStats
{
private long totalSize = 0;//总数据的大小
private long bytesRead = 0;//已读数据大小
private long startTime = System.currentTimeMillis();//开始读取的时间
private String currentStatus = "none";//默认的状态
public long getTotalSize()//属性totalSize的get方法
{
return totalSize;
}
public void setTotalSize(long totalSize)
{
this.totalSize = totalSize;
}
public long getBytesRead()//属性bytesRead的get方法
{
return bytesRead;
}
public void setBytesRead(long bytesRead)
{
this.bytesRead = bytesRead;
}
public long getElapsedTimeInSeconds()//获得已经上传的时间
{
return (System.currentTimeMillis() - startTime) / 1000;
}
public String getCurrentStatus()//属性currentStatus的get方法
{
return currentStatus;
}
public void setCurrentStatus(String currentStatus)
{
this.currentStatus = currentStatus;
}
public void incrementBytesRead(int byteCount)
{
this.bytesRead += byteCount;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -