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;
}
}
}
分享到:
相关推荐
本篇文章将详细探讨如何使用Java实现本地文件监听,并自动将其上传至服务器,以实现文件同步功能。 首先,让我们从“JAVA 监听文件夹变化”这个知识点开始。Java提供了一种称为`WatchService`的机制,它允许程序...
同时,开发者可以编写监听器(Observer)类,这些类包含了对特定事件的处理逻辑。 在Windchill中,事件监听的实现步骤如下: 1. **定义事件接口**:通常,我们会为每种类型的事件定义一个接口,接口中包含了一个或...
在iOS应用开发中,网络功能是不可或缺的一部分,用于获取服务器数据、上传下载文件等操作。 一、Alamofire基础知识 1. **发起GET请求**:Alamofire提供了一个简单的API来发起GET请求。例如: ```swift Alamofire....
C#作为一种强大的编程语言,提供了丰富的类库来实现网络通信功能,如监听指定端口和向特定端口发送数据。这里我们将深入探讨如何利用C#进行UDP和TCP通信。 首先,让我们了解基本概念: 1. **监听(Listening)**:...
在这个“Android中39采用Service实现电话监听器并将监听到的内容上传到服务器案例”中,我们将深入探讨如何利用Service监听手机通话状态,并将相关信息发送到远程服务器。 首先,电话监听器(PhoneStateListener)...
总结来说,实现"一行代码即可监听App中所有网络链接的上传以及下载进度",需要以下步骤: 1. 针对网络请求库(如OkHttp),创建一个拦截器来监听上传/下载进度。 2. 对于Glide,创建自定义的`ProgressListener`或`...
对于标题"VS.NET C#监听txt日志修改",描述提到的是如何利用Visual Studio .NET (VS.NET) 和C#语言来实时监控TXT文本日志文件的改动,并将设备操作日志数据上传到一个软件查询系统。这是一个典型的文件监控和数据...
在Swift编程中,网络监听是一项重要的任务,它允许应用程序实时获取设备的网络状态变化,比如网络连接的断开与恢复,这对于确保应用的稳定性和用户体验至关重要。`NetworkUtil`通常是一个自定义工具类,用于封装网络...
在本文中,我们将深入探讨如何使用C#编程语言与海康威视设备进行交互,特别是针对报警布防监听功能的实现。海康威视是一家知名的安防监控设备制造商,其产品广泛应用于各种场所,如家庭、商业设施和工业环境。通过C#...
9. **数据流量监控**:如果需要统计数据流量的使用,可以通过`TrafficStats`类获取移动数据的上传和下载总量。 10. **NetworkCallback**:在Android API 24及以上版本,可以使用`ConnectivityManager....
【标题】"iOS网络开发详解:实时监听、网络请求、文件上传下载及多图上传" 在iOS应用开发中,网络功能是不可或缺的一部分。本资源主要围绕如何在iOS平台轻松实现网络实时监听、处理常见网络请求、文件上传下载以及...
文件名“4-报警布防监听”暗示了这是一个系列教程或代码示例的一部分,可能涉及四个步骤或者四个关键模块:报警系统、布防设置、监听功能以及它们的整合。在这个部分,我们可能看到如何设置和测试报警条件,如何在...
标题提到的"Android-一行代码即可监听App中所有网络链接的上传以及下载进度包括Glide的图片加载进度",这是一个高效且简便的方法来追踪网络流量和图片加载情况。这通常涉及到网络请求库的使用,如OkHttp,以及图片...
`Android-TNetProgress`项目就是为了实现这一目标,它是一个用于监听文件下载和上传进度的工具库。在OkHttp和Retrofit这两个流行的网络库上,我们可以轻松地集成`TNetProgress`来获取进度信息。 OkHttp是一个高效的...
tnsnames,呵呵,办公室网速不是很好,只能先上传比较小一点的文件来赚取积分了
该小程序是基于pyhon编制,可以自动监听指定的本地文件夹,当文件夹内出现新文件时,依据录入的ftp配置地址,实现文件自动上传FTP服务器的作用。该小程序支持同事监听两个本地文件夹,可以传输两个ftp服务器。此外,...
本篇文章将聚焦于Retrofit2如何实现文件上传,并且在上传过程中展示进度,同时也涉及到RxJava的运用。不过请注意,此示例并未涵盖权限管理,因为它仅作为多文件上传和进度显示的演示。 首先,我们需要了解Retrofit2...
"Android网络流量监听器源代码"是实现这一功能的关键,它通常包含一系列用于检测和记录应用程序网络活动的类和方法。 在Android系统中,网络流量的监控主要涉及到以下几个核心知识点: 1. **BroadcastReceiver**: ...
是一个自由度很高的富文本, 可以基于一个页面多个富文本不串门, 任意上传图片
通常,这样的代码库会包含一个或多个类,这些类实现了监听器接口,以及一些示例用法,帮助开发者快速理解和集成到自己的项目中。 通过深入理解并使用`RequestListener`,开发者可以更优雅地处理网络请求和UI之间的...