📄 transferhandler.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 + -