⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 transferhandler.java

📁 该系统是一个基于p2p的即时聊天系统
💻 JAVA
字号:
/* * @(#) TransferHandler.java * Copyright 2004 HWStudio. All rights reserved. */package hws.item.smart.utility.share;//导入核心Java类库import java.io.File;import java.io.IOException;import java.io.StringReader;import java.io.FileOutputStream;import javax.swing.JOptionPane;//导入自定义Java类库import hws.item.smart.Smart;import hws.item.smart.misc.PopToolkit;import hws.item.smart.misc.StringShop;import hws.item.smart.panel.function.share.DownloadPanel;//导入第三方Java类库import org.jdom.Element;import org.jdom.Document;import org.jdom.JDOMException;import org.jdom.input.SAXBuilder;/** * 文件传输处理器 * * @version 0.1 2005-08-30 * @author Hwerz */public class TransferHandler extends Object {    /*------------------------------------------------------------------------*     *                                公共方法                                *     *------------------------------------------------------------------------*/    /**     * 文件传输     *     * @param transferMsg 文件传输信息     */    public void transfer(String transferMsg) {        (new ResponseTransferThread(transferMsg)).start();    }    /*------------------------------------------------------------------------*     *                                 内部类                                 *     *------------------------------------------------------------------------*/    /**     * 响应传输进程     */    class ResponseTransferThread extends Thread {        /**         * 文件传输信息         */        private String transferMsg;        /**         * Create a new instance of this class         *         * @param msg 文件传输信息         */        public ResponseTransferThread(String msg) {            super();            transferMsg = msg;        }        /**         * 覆盖超类Thread的方法         */        public void run() {            try {                SAXBuilder builder = new SAXBuilder();                StringReader reader = new StringReader(transferMsg);                Document document = builder.build(reader);                Element transfer = document.getRootElement();                Element file = transfer.getChild("File");                StringBuffer fileName = new StringBuffer();                fileName.append(file.getAttributeValue("dir"));                fileName.append("\\");                fileName.append(file.getAttributeValue("file"));                String fn = fileName.toString();                File download = new File(fn);                FileOutputStream fos;                boolean first = file.getAttributeValue("first").equals("true");                if (first) {                    fos = new FileOutputStream(download);                } else {                    fos = new FileOutputStream(download, true);                }                fos.write(PopToolkit.decode(file.getAttributeValue("content")));                fos.close();                long size1 = download.length();                long size2 = Long.parseLong(file.getAttributeValue("size"));                int progress = (int) (100 * size1 / size2);                if (first) {                    DownloadPanel.getInstance().addDownload(fn, progress);                } else {                    DownloadPanel.getInstance().setDownload(fn, progress);                }                if (progress == 100) {                    DownloadPanel.getInstance().deleteDownload(fn);                    JOptionPane.showMessageDialog(Smart.getInstance(),                        "文件" + fn + "下载完毕", StringShop.HINT_TITLE,                        JOptionPane.INFORMATION_MESSAGE);                }            } catch (JDOMException e) {                e.printStackTrace();            } catch (IOException e) {                e.printStackTrace();            }        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -