- 浏览: 83492 次
- 性别:
- 来自: 重庆
最新评论
-
lihua2008love:
为什么报javax.imageio.IIOException: ...
图片加水印JAVA实现 -
dearhwj:
我整理了一些我常用的Eclipse插件http://www.d ...
eclipse 常用插件 -
javay:
谢谢。
图片加水印JAVA实现 -
hailanc1108:
不错,谢谢啦.
图片加水印JAVA实现 -
elf8848:
我看了, 很好, 但水印不是半透明的
图片加水印JAVA实现
package jp.swtech; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.io.FileInputStream; import java.io.RandomAccessFile; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; import java.nio.channels.FileChannel.MapMode; import java.util.Date; import javax.swing.Box; import javax.swing.DefaultListModel; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextField; import javax.swing.SwingUtilities; import javax.swing.UIManager; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; public class FileCopyTool extends JFrame { private static final long serialVersionUID = -2279866387292940681L; private String pathDest = ""; private String pathSrc = ""; private DefaultListModel model = null; public FileCopyTool(){ super(); setSize(250,400); initComponents(); } private void initComponents(){ JPanel panel = new JPanel(); panel.setLayout(new BorderLayout()); panel.setBounds(10, 10, 10, 10); JLabel lblDest = new JLabel("目标路径:"); txtDest = new JTextField(30); btnClear = new JButton("清空"); btnClear.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { File[] fs = new File(pathDest).listFiles(); for(File f : fs){ f.delete(); } }}); btnCopy = new JButton("拷贝"); btnCopy.addActionListener(new BtnCopyAction()); Box box = Box.createHorizontalBox(); box.add(lblDest); box.add(Box.createHorizontalStrut(5)); box.add(txtDest); box.add(Box.createHorizontalStrut(5)); box.add(btnClear); box.add(btnCopy); panel.add(box,BorderLayout.NORTH); JLabel lblSrc = new JLabel("源路径:"); txtSrc = new JTextField(30); btnLoad = new JButton("加载文件"); btnLoad.addActionListener(new BtnLoadAction()); box = Box.createHorizontalBox(); box.add(lblSrc); box.add(Box.createHorizontalStrut(5)); box.add(txtSrc); box.add(Box.createHorizontalStrut(5)); box.add(btnLoad); panel.add(box,BorderLayout.SOUTH); model = new DefaultListModel(); fileList = new JList(model); fileList.addListSelectionListener(new SelectionListener()); panel.add(new JScrollPane(fileList),BorderLayout.CENTER); add(panel); setResizable(false); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); } catch (Exception e) { e.printStackTrace(); } SwingUtilities.updateComponentTreeUI(this); } private class SelectionListener implements ListSelectionListener{ public void valueChanged(ListSelectionEvent e) { JList lst = (JList)e.getSource(); pathSrc = txtSrc.getText().trim() + File.separator + lst.getSelectedValue(); System.out.println("当前拷贝路径" + pathSrc); } } private class BtnLoadAction implements ActionListener{ public void actionPerformed(ActionEvent e) { try { model.removeAllElements(); pathDest = txtDest.getText().trim(); pathSrc = txtSrc.getText().trim(); if(checked()){ File file = new File(pathSrc); File[] files = file.listFiles(); for(File f : files) model.addElement(f.getName()); } } catch (Exception e1) { show("读取源目录发生异常!"); } } } private class BtnCopyAction implements ActionListener{ public void actionPerformed(ActionEvent e) { if(checked()){ try { for(File f : new File(pathDest).listFiles()){ if(f.isFile()) f.delete(); } File fs = new File(pathSrc); if(fs.isFile()){ File toFile = new File(pathDest + File.separator + fs.getName()); forImage(fs,toFile); return; } File[] files = fs.listFiles(); for(File f : files){ if(!f.isFile()) return; File toFile = new File(pathDest + File.separator + f.getName()); forImage(f,toFile); } show("复制文件成功!"); } catch (Exception e1) { show("复制文件的时候发生异常!"); } } } } private boolean checked(){ if(pathDest.equals("")){ show("目标路径不能为空"); return false; } if(pathSrc.equals("")){ show("源路径不能为空"); return false; } return true; } private void show(String msg){ JOptionPane.showMessageDialog(this, msg,"错误",JOptionPane.ERROR_MESSAGE); } /** * @param args */ public static void main(String[] args) { FileCopyTool fct = new FileCopyTool(); fct.setVisible(true); } public static long forImage(File f1, File f2) throws Exception { long time = new Date().getTime(); int length = 2097152; FileInputStream in = new FileInputStream(f1); RandomAccessFile out = new RandomAccessFile(f2, "rw"); FileChannel inC = in.getChannel(); MappedByteBuffer outC = null; MappedByteBuffer inbuffer = null; byte[] b = new byte[length]; while (true) { if (inC.position() == inC.size()) { inC.close(); outC.force(); out.close(); return new Date().getTime() - time; } if ((inC.size() - inC.position()) < length) { length = (int) (inC.size() - inC.position()); } else { length = 20971520; } b = new byte[length]; inbuffer = inC.map(MapMode.READ_ONLY, inC.position(), length); inbuffer.load(); inbuffer.get(b); outC = out.getChannel().map(MapMode.READ_WRITE, inC.position(), length); inC.position(b.length + inC.position()); outC.put(b); outC.force(); out.close(); in.close(); } } JButton btnCopy = null; JTextField txtDest = null; JTextField txtSrc = null; JList fileList = null; JButton btnLoad = null; JButton btnClear = null; }
发表评论
-
设计模式备忘录
2012-02-27 23:11 901创建型模式 1.抽 ... -
随机生成指定长度的全半角日文假名
2009-09-16 21:48 2799package cn.com.oneslife; ... -
javadoc参数
2009-06-19 18:44 1543生成javadoc的时候添加的参数,不然中文会出现乱码! -
Hibernate中Criteria总结(一)
2009-05-31 00:47 1398复合查询主要是处理,具有关联关系的两个实体怎样进行关联查询, ... -
eclipse 常用插件
2009-05-03 01:27 1560SVN Explain: 版本控制插件 Home Page: ... -
Spring+Hibernate延迟加载测试基类
2009-04-22 03:17 1346package cn.com.oneslife; imp ... -
Spring2.5 及 Hibernate Annotation 配置文件笔记
2009-04-21 19:18 12641. web.xml 配置 <context-pa ... -
hibernate annotation
2009-04-21 18:14 999hibernate提供了hibernate ann ... -
MD5算法
2009-04-18 04:01 911Java版本 import java.security.Me ... -
利用struts拦截器实现简单的权限验证
2009-04-17 18:25 1457package cn.com.oneslife.interce ... -
Spring 2.5 典型配置
2009-04-14 19:15 1041<?xml version="1.0&qu ... -
Java 术语表
2009-04-07 02:02 1076Java术语表 英文 中文 acces ... -
Spring Security 2 配置精讲
2009-04-05 23:42 1068downpour 写道论坛上看了 ... -
Spring2.5注释语法
2009-04-04 02:41 1699Spring的IoC public class Foo {① ... -
用Spring AOP实现松散耦合
2009-04-04 01:23 866摘 要 面向方面编程(AO ... -
将HQL以及参数加载到Query实例中
2009-04-03 18:43 1371package cn.com.oneslife.dao; ... -
[转]string和stringbuffer的区别
2009-03-02 16:14 861看JAVA源代码,发现了str ... -
Hibernate 的数据加载方式
2008-12-24 13:35 7041.即时加载(Immediate Loading)当实体加载完 ... -
数独游戏网址
2007-08-13 17:35 1152http://www.sudoku.name/index-cn ... -
图片加水印JAVA实现
2007-08-13 17:12 8733java 代码 import java.awt. ...
相关推荐
标题中的“大名鼎鼎的小文件拷贝工具”指的是一个广为人知的软件,它专门用于快速复制小文件。这个工具以其高效的多线程技术著称,能够在短时间内完成大量小文件的复制工作,大大提高了工作效率。它是由微软公司开发...
Fastcopy是日本的最快的文件拷贝工具。磁盘间相互拷贝文件是司空见惯的事情,通常情况都是利用WINDOWS自带的复制粘贴功能来实现的。这样做在数目较小的情况下倒也没什么问题,但是数目较大时,系统自带的复制功能就...
QT开发基于QT开发的文件拷贝工具.zipQT开发基于QT开发的文件拷贝工具.zipQT开发基于QT开发的文件拷贝工具.zipQT开发基于QT开发的文件拷贝工具.zipQT开发基于QT开发的文件拷贝工具.zipQT开发基于QT开发的文件拷贝工具...
《FastCopy:高效大文件拷贝工具的深度解析》 在日常的工作与生活中,我们时常需要将大量的数据从一个存储设备复制到另一个设备,尤其是在处理大型文件或文件夹时,Windows自带的拷贝功能往往显得力不从心,速度慢...
标题中的“一个不错的文件拷贝工具”指的是一个高效、便捷的文件复制软件,它能够帮助用户快速、稳定地将文件从一个位置复制到另一个位置。这类工具通常比操作系统自带的文件复制功能更加强大,提供了更多的选项和...
"最快的文件拷贝工具(每秒20MB)"这个标题所指的工具显然强调了其在速度方面的优势,能够实现每秒20MB的拷贝速率。这在处理大量数据或者需要频繁转移文件的场景下显得尤为关键,因为它大大提高了工作效率,减少了等待...
系统文件拷贝工具是一种专为IT专业人士设计的实用软件,其主要功能是高效、安全地复制和移动系统中的隐藏文件及重要数据。这类工具通常具备高级功能,如自动识别系统文件、忽略权限问题以及在操作过程中保持文件完整...
标题中的“我用过的最快的文件拷贝工具”指的是在众多文件传输软件中,有一款工具在作者的使用体验中表现出极高的速度和效率。描述中的“至今为止,我用过的最快的文件拷贝工具,绝不忽悠”进一步强调了该工具的速度...
经测试,一个424MB的电影其拷贝时间仅为 21 秒,传输速度达到了21MB/秒,不知比TotalCopy之流快了多少倍,所以,在这里我不吝惜自己的赞美,把“最快的文件拷贝工具”这个桂冠送给它,如果你发现还有比它更快的,烦...
【VB版U盘文件拷贝工具uFileSys】是一款基于Visual Basic(VB)开发的实用程序,主要用于方便用户快速地将文件从一个位置复制到U盘或其他存储设备上。同时,该工具还具备文件监控功能,可以跟踪并记录文件的拷贝活动...
"大文件快速拷贝工具"就是为了应对这类问题而设计的软件解决方案。它优化了文件传输过程,使得大文件的复制速度得以显著提升,同时保持数据的完整性。 首先,我们来了解快速拷贝技术的核心原理。在传统的文件拷贝...
硬盘写入数据,无损工具,确保copy的数据完全没有变化
而FastCopy,作为一个专业的文件拷贝工具,以其高效、稳定和易用的特点,为用户节省了宝贵的时间,极大地提升了工作效率。 FastCopy_v1.52是这款软件的最新版本,它以其全中文的操作界面,为国内用户提供了极大的...
这时,一款高效、稳定的文件拷贝工具就显得尤为重要。Fastcopy,作为一款备受赞誉的文件拷贝软件,因其出色的性能和易用性,成为了许多用户的选择。 Fastcopy,顾名思义,其核心功能就是快速复制文件。它采用了优化...
FastCopy,作为一款备受赞誉的单机文件拷贝工具,以其高效、稳定的特点,在IT领域内享有极高的声誉。其1.71版本的源代码公开,为开发者提供了深入理解其工作原理的宝贵机会。本文将详细介绍FastCopy的核心功能以及源...
一个多线程的文件拷贝工具的实现,文件操作接口使用了内存映射模型的方式实现,可以指定线程数量,可以在拷贝过程中查看整体的进度信息(进度、速度、剩余时间、已用时间),同时可以查看每个子线程对应的进度信息。...
FastCopy是一款高效、轻量级的文件拷贝工具,尤其在大量数据传输和备份场景下表现出色。它以其快速的拷贝速度和稳定的性能而受到用户的喜爱,是IT专业人士和普通用户进行文件管理的重要助手。 首先,让我们了解一下...