`
ganjuelovejava
  • 浏览: 94899 次
  • 性别: Icon_minigender_2
  • 来自: 湖南
社区版块
存档分类
最新评论

上传监听类

 
阅读更多
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 监听文件夹变化”这个知识点开始。Java提供了一种称为`WatchService`的机制,它允许程序...

    windchill交流第三篇:Windchill中的事件监听

    同时,开发者可以编写监听器(Observer)类,这些类包含了对特定事件的处理逻辑。 在Windchill中,事件监听的实现步骤如下: 1. **定义事件接口**:通常,我们会为每种类型的事件定义一个接口,接口中包含了一个或...

    Swift-NetworkUtilAlamofire(网络监听)

    在iOS应用开发中,网络功能是不可或缺的一部分,用于获取服务器数据、上传下载文件等操作。 一、Alamofire基础知识 1. **发起GET请求**:Alamofire提供了一个简单的API来发起GET请求。例如: ```swift Alamofire....

    c#向指定端口发送数据,监听指定端口

    C#作为一种强大的编程语言,提供了丰富的类库来实现网络通信功能,如监听指定端口和向特定端口发送数据。这里我们将深入探讨如何利用C#进行UDP和TCP通信。 首先,让我们了解基本概念: 1. **监听(Listening)**:...

    Android中39采用Service实现电话监听器并将监听到的内容上传到服务器案例

    在这个“Android中39采用Service实现电话监听器并将监听到的内容上传到服务器案例”中,我们将深入探讨如何利用Service监听手机通话状态,并将相关信息发送到远程服务器。 首先,电话监听器(PhoneStateListener)...

    一行代码即可监听 App 中所有网络链接的上传以及下载进度

    总结来说,实现"一行代码即可监听App中所有网络链接的上传以及下载进度",需要以下步骤: 1. 针对网络请求库(如OkHttp),创建一个拦截器来监听上传/下载进度。 2. 对于Glide,创建自定义的`ProgressListener`或`...

    VS.NET C#监听txt日志修改

    对于标题"VS.NET C#监听txt日志修改",描述提到的是如何利用Visual Studio .NET (VS.NET) 和C#语言来实时监控TXT文本日志文件的改动,并将设备操作日志数据上传到一个软件查询系统。这是一个典型的文件监控和数据...

    (Swift)NetworkUtil监听网络

    在Swift编程中,网络监听是一项重要的任务,它允许应用程序实时获取设备的网络状态变化,比如网络连接的断开与恢复,这对于确保应用的稳定性和用户体验至关重要。`NetworkUtil`通常是一个自定义工具类,用于封装网络...

    C#编写的海康威视设备报警布防监听demo

    在本文中,我们将深入探讨如何使用C#编程语言与海康威视设备进行交互,特别是针对报警布防监听功能的实现。海康威视是一家知名的安防监控设备制造商,其产品广泛应用于各种场所,如家庭、商业设施和工业环境。通过C#...

    Android监听网络状态

    9. **数据流量监控**:如果需要统计数据流量的使用,可以通过`TrafficStats`类获取移动数据的上传和下载总量。 10. **NetworkCallback**:在Android API 24及以上版本,可以使用`ConnectivityManager....

    ios-轻松搞定网络实时监听、常用网络请求、上传下载文件、多图上传.zip

    【标题】"iOS网络开发详解:实时监听、网络请求、文件上传下载及多图上传" 在iOS应用开发中,网络功能是不可或缺的一部分。本资源主要围绕如何在iOS平台轻松实现网络实时监听、处理常见网络请求、文件上传下载以及...

    海康威视监听布防示例(车牌抓拍).zip

    文件名“4-报警布防监听”暗示了这是一个系列教程或代码示例的一部分,可能涉及四个步骤或者四个关键模块:报警系统、布防设置、监听功能以及它们的整合。在这个部分,我们可能看到如何设置和测试报警条件,如何在...

    Android-一行代码即可监听App中所有网络链接的上传以及下载进度包括Glide的图片加载进度.

    标题提到的"Android-一行代码即可监听App中所有网络链接的上传以及下载进度包括Glide的图片加载进度",这是一个高效且简便的方法来追踪网络流量和图片加载情况。这通常涉及到网络请求库的使用,如OkHttp,以及图片...

    Android-TNetProgress文件下载上传进度监听

    `Android-TNetProgress`项目就是为了实现这一目标,它是一个用于监听文件下载和上传进度的工具库。在OkHttp和Retrofit这两个流行的网络库上,我们可以轻松地集成`TNetProgress`来获取进度信息。 OkHttp是一个高效的...

    oracle监听器配置

    tnsnames,呵呵,办公室网速不是很好,只能先上传比较小一点的文件来赚取积分了

    FTP自动监听文件夹实现文件上传小程序

    该小程序是基于pyhon编制,可以自动监听指定的本地文件夹,当文件夹内出现新文件时,依据录入的ftp配置地址,实现文件自动上传FTP服务器的作用。该小程序支持同事监听两个本地文件夹,可以传输两个ftp服务器。此外,...

    Android-Retrofit2文件上传及其进度显示

    本篇文章将聚焦于Retrofit2如何实现文件上传,并且在上传过程中展示进度,同时也涉及到RxJava的运用。不过请注意,此示例并未涵盖权限管理,因为它仅作为多文件上传和进度显示的演示。 首先,我们需要了解Retrofit2...

    Android网络流量监听器源代码

    "Android网络流量监听器源代码"是实现这一功能的关键,它通常包含一系列用于检测和记录应用程序网络活动的类和方法。 在Android系统中,网络流量的监控主要涉及到以下几个核心知识点: 1. **BroadcastReceiver**: ...

    vue富文本框自定义上传编辑图片, 监听鼠标指针上传

    是一个自由度很高的富文本, 可以基于一个页面多个富文本不串门, 任意上传图片

    swift-RequestListener(监听app内请求UI显示出来)

    通常,这样的代码库会包含一个或多个类,这些类实现了监听器接口,以及一些示例用法,帮助开发者快速理解和集成到自己的项目中。 通过深入理解并使用`RequestListener`,开发者可以更优雅地处理网络请求和UI之间的...

Global site tag (gtag.js) - Google Analytics