?? 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 + -