﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-不懂就是不懂</title><link>http://www.blogjava.net/wxq594808632/</link><description>差距就是差距</description><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 17:14:13 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 17:14:13 GMT</pubDate><ttl>60</ttl><item><title>[导入]引用 如何将class打包exe文件</title><link>http://www.blogjava.net/wxq594808632/archive/2009/04/08/268124.html</link><dc:creator>武志强</dc:creator><author>武志强</author><pubDate>Wed, 08 Apr 2009 08:28:00 GMT</pubDate><guid>http://www.blogjava.net/wxq594808632/archive/2009/04/08/268124.html</guid><wfw:comment>http://www.blogjava.net/wxq594808632/comments/268124.html</wfw:comment><comments>http://www.blogjava.net/wxq594808632/archive/2009/04/08/268124.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wxq594808632/comments/commentRss/268124.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wxq594808632/services/trackbacks/268124.html</trackback:ping><description><![CDATA[<div><P>&nbsp;</P>
<P><EM>引用</EM></P>
<BLOCKQUOTE><A href="http://maidini.blog.163.com/" target=_blank>蒋委员长</A> 的 <A href="http://maidini.blog.163.com/blog/static/37762704200841015641604" target=_blank>如何将class打包exe文件</A><BR>class文件打包exe文件要经过两个步骤：<BR>第一步：将class文件打包成jar文件，请参见我的上一篇文章：<A href="http://maidini.blog.163.com/blog/static/37762704200848910573/" target=_blank>http://maidini.blog.163.com/blog/static/37762704200848910573/</A><BR>第二步：将jar文件打包成exe文件。这是今天的重点<BR><BR>将jar打包exe 有许多工具，我以exe4j为例详解打包过程：<BR>第一步：下载exe4j,最新版本为4.1 如下图 <A href="http://www.ej-technologies.com/index.html" target=_blank>exe4j的官方网站</A>&nbsp; <BR><A href="http://img.blog.163.com/photo/oSNfeqUmUapfLgzmIpLL4Q==/4801963102683988915.jpg" target=_blank><IMG title="引用 如何将class打包exe文件 - 紫依韵 - 见人还是人" alt="引用 如何将class打包exe文件 - 紫依韵 - 见人还是人" src="http://img.blog.163.com/photo/oSNfeqUmUapfLgzmIpLL4Q==/4801963102683988915.jpg"></A><BR><BR>第二步：运行exe4j.exe 我使用的是免安装版(zip) 如下图<BR><A href="http://img.blog.163.com/photo/FF_8ljgxJtafAwD9cWTnhg==/5140014549713785130.jpg" target=_blank><IMG title="引用 如何将class打包exe文件 - 紫依韵 - 见人还是人" alt="引用 如何将class打包exe文件 - 紫依韵 - 见人还是人" src="http://img.blog.163.com/photo/FF_8ljgxJtafAwD9cWTnhg==/5140014549713785130.jpg"></A><BR><BR>第三步：运行软件exe4j，然后点击Next<BR><A href="http://img.blog.163.com/photo/EVPN24MdjZr2vuo54vQO4Q==/2580562586483916628.jpg" target=_blank><IMG title="引用 如何将class打包exe文件 - 紫依韵 - 见人还是人" alt="引用 如何将class打包exe文件 - 紫依韵 - 见人还是人" src="http://img.blog.163.com/photo/EVPN24MdjZr2vuo54vQO4Q==/2580562586483916628.jpg"></A><BR><BR>第四步：选择第二项"JAR in EXE mode"，然后点击Next<BR><A href="http://img.blog.163.com/photo/bJsv2KlKRvJvVv6vlgaf_g==/1149543804886973231.jpg" target=_blank><IMG title="引用 如何将class打包exe文件 - 紫依韵 - 见人还是人" alt="引用 如何将class打包exe文件 - 紫依韵 - 见人还是人" src="http://img.blog.163.com/photo/bJsv2KlKRvJvVv6vlgaf_g==/1149543804886973231.jpg"></A><BR><BR>第五步：在General中填入名称，在Directories填入生成exe的目录位置。如下图：我将生成exe目录设置为C:\ok ，然后点Next<BR><A href="http://img.blog.163.com/photo/XNrdUv_c_r4kS-_em6mePA==/4265753272050641672.jpg" target=_blank><IMG title="引用 如何将class打包exe文件 - 紫依韵 - 见人还是人" alt="引用 如何将class打包exe文件 - 紫依韵 - 见人还是人" src="http://img.blog.163.com/photo/XNrdUv_c_r4kS-_em6mePA==/4265753272050641672.jpg"></A><BR><BR>第六步：Executable name处填入生成exe文件的名称，Icon File处填写图标文件位置，再点Next<BR><A href="http://img.blog.163.com/photo/4sL19xRkpkVtK1jOolg7wg==/854558029294113969.jpg" target=_blank><IMG title="引用 如何将class打包exe文件 - 紫依韵 - 见人还是人" alt="引用 如何将class打包exe文件 - 紫依韵 - 见人还是人" src="http://img.blog.163.com/photo/4sL19xRkpkVtK1jOolg7wg==/854558029294113969.jpg"></A><BR><BR>第七步：首先设置Class Path的位置，即jar文件的位置。然后点OK<BR><A href="http://img.blog.163.com/photo/Z8ICxENsAZkvBp7WWw9H7A==/854558029294113966.jpg" target=_blank><IMG title="引用 如何将class打包exe文件 - 紫依韵 - 见人还是人" alt="引用 如何将class打包exe文件 - 紫依韵 - 见人还是人" src="http://img.blog.163.com/photo/Z8ICxENsAZkvBp7WWw9H7A==/854558029294113966.jpg"></A><BR><BR>第八步：接着设置Main-Class 的位置，即main方法所在的位置。然后点OK 如下图<BR><A href="http://img.blog.163.com/photo/a2Bxf67v9klD-oFqrkciaQ==/2292895160285629875.jpg" target=_blank><IMG title="引用 如何将class打包exe文件 - 紫依韵 - 见人还是人" alt="引用 如何将class打包exe文件 - 紫依韵 - 见人还是人" src="http://img.blog.163.com/photo/a2Bxf67v9klD-oFqrkciaQ==/2292895160285629875.jpg"></A><BR><BR>设置完成后，如下图： 一定要先设置Class Path，再设置Main class<BR><A href="http://img.blog.163.com/photo/v6uCEU_odFSmEoAuTWN9lw==/2292895160285629874.jpg" target=_blank><IMG title="引用 如何将class打包exe文件 - 紫依韵 - 见人还是人" alt="引用 如何将class打包exe文件 - 紫依韵 - 见人还是人" src="http://img.blog.163.com/photo/v6uCEU_odFSmEoAuTWN9lw==/2292895160285629874.jpg"></A><BR><BR>第九步：填写版本号，最好不要填写第二项。否则可能造成错误(见后面)，最后点击Finish即可<BR><A href="http://img.blog.163.com/photo/JLgYV3Uupt6erVNmWmAKBg==/2292895160285629873.jpg" target=_blank><IMG title="引用 如何将class打包exe文件 - 紫依韵 - 见人还是人" alt="引用 如何将class打包exe文件 - 紫依韵 - 见人还是人" src="http://img.blog.163.com/photo/JLgYV3Uupt6erVNmWmAKBg==/2292895160285629873.jpg"></A><BR><BR>错误内容：No JVM could be found on your system. Please define EXE4J_JAVA_HOME to point to an installed JDK or JRE or download a JRE from www.java.com<BR>当时出现这个错误，查看了JDK和JRE都没有问题，exe4j也是最新版。后来才发现是设置"Maximum version"。如果不填写"Maximum version"，就不报错。也不知道是不是exe4j的BUG<BR><A href="http://img.blog.163.com/photo/AtNiLDu4GEKQCJQhUUNJzg==/2292895160285629872.jpg" target=_blank><IMG title="引用 如何将class打包exe文件 - 紫依韵 - 见人还是人" alt="引用 如何将class打包exe文件 - 紫依韵 - 见人还是人" src="http://img.blog.163.com/photo/AtNiLDu4GEKQCJQhUUNJzg==/2292895160285629872.jpg"></A><BR><BR>第十步：完成所有设置，点击“Click Here to Start the Application”可以运行测试生成的EXE文件<BR><A href="http://img.blog.163.com/photo/BLHlq3yxpqPIH0BAM7JXlw==/5712816127320265320.jpg" target=_blank><IMG title="引用 如何将class打包exe文件 - 紫依韵 - 见人还是人" alt="引用 如何将class打包exe文件 - 紫依韵 - 见人还是人" src="http://img.blog.163.com/photo/BLHlq3yxpqPIH0BAM7JXlw==/5712816127320265320.jpg"></A><BR><BR>生成的最终的EXE程序，双击直接运行。现在可以把自己写的小程序发给朋友们玩玩啦，呵呵<BR><A href="http://img.blog.163.com/photo/O8pROy7LbAf0X0KwicelMA==/3962604722133378130.jpg" target=_blank><IMG title="引用 如何将class打包exe文件 - 紫依韵 - 见人还是人" alt="引用 如何将class打包exe文件 - 紫依韵 - 见人还是人" src="http://img.blog.163.com/photo/O8pROy7LbAf0X0KwicelMA==/3962604722133378130.jpg"></A><BR><BR><BR></BLOCKQUOTE></div><br>文章来源:<a href='http://wxq594808632.blog.163.com/blog/static/10907975520093842753860'>http://wxq594808632.blog.163.com/blog/static/10907975520093842753860</a><img src ="http://www.blogjava.net/wxq594808632/aggbug/268124.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wxq594808632/" target="_blank">武志强</a> 2009-04-08 16:28 <a href="http://www.blogjava.net/wxq594808632/archive/2009/04/08/268124.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]引用 如何将Class打包Jar文件--Eclipse</title><link>http://www.blogjava.net/wxq594808632/archive/2009/04/08/268125.html</link><dc:creator>武志强</dc:creator><author>武志强</author><pubDate>Wed, 08 Apr 2009 08:27:00 GMT</pubDate><guid>http://www.blogjava.net/wxq594808632/archive/2009/04/08/268125.html</guid><wfw:comment>http://www.blogjava.net/wxq594808632/comments/268125.html</wfw:comment><comments>http://www.blogjava.net/wxq594808632/archive/2009/04/08/268125.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/wxq594808632/comments/commentRss/268125.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wxq594808632/services/trackbacks/268125.html</trackback:ping><description><![CDATA[<div><P>&nbsp;</P>
<P><EM>引用</EM></P>
<BLOCKQUOTE><A href="http://maidini.blog.163.com/" target=_blank>蒋委员长</A> 的 <A href="http://maidini.blog.163.com/blog/static/37762704200848910573" target=_blank>如何将Class打包Jar文件--Eclipse</A><BR>开发环境：Eclipse + Win XP SP2<BR>使用插件：Fatjar、Jigloo<BR><BR>闲话少说，直接切入正题。首先打开Eclipse，创建一个Java工程。如下图：我机子上的是JDK1.6 <BR><A href="http://img.blog.163.com/photo/eOr6alQ6rNmZ2XLOyGYuqw==/1718404732819019876.jpg" target=_blank><IMG title="引用 如何将Class打包Jar文件--Eclipse - 紫依韵 - 见人还是人" alt="引用 如何将Class打包Jar文件--Eclipse - 紫依韵 - 见人还是人" src="http://img.blog.163.com/photo/eOr6alQ6rNmZ2XLOyGYuqw==/1718404732819019876.jpg"></A><BR><BR>第二步：用Jigloo插件创建一个窗体，为了更明显演示我将窗体名字修改为“这是一个测试程序”。如下图：<A></A> <BR><A href="http://img.blog.163.com/photo/c7q72XIpYnojGZv6RHPd9g==/3698581193978391034.jpg" target=_blank><IMG title="引用 如何将Class打包Jar文件--Eclipse - 紫依韵 - 见人还是人" alt="引用 如何将Class打包Jar文件--Eclipse - 紫依韵 - 见人还是人" src="http://img.blog.163.com/photo/c7q72XIpYnojGZv6RHPd9g==/3698581193978391034.jpg"></A><BR><BR>第三步：现在就该将运行正常的java程序打包成jar文件。我使用Fatjar插件打包相当方便、傻瓜。直接右键选择要打包的工程，弹出的菜单中选择“Build Fat Jar”。如下图：<BR><A href="http://img.blog.163.com/photo/Sqc4kuU1PA4T9zJeOFLSUQ==/2540593139790818878.jpg" target=_blank><IMG title="引用 如何将Class打包Jar文件--Eclipse - 紫依韵 - 见人还是人" alt="引用 如何将Class打包Jar文件--Eclipse - 紫依韵 - 见人还是人" src="http://img.blog.163.com/photo/Sqc4kuU1PA4T9zJeOFLSUQ==/2540593139790818878.jpg"></A><BR><BR>第四步：弹出对话框，需要将引导路径修改，其他选项使用默认设置，然后点击Finish。<SPAN style="COLOR: rgb(255,0,0)">“Main-Class”这项修改为Main方法所在的文件。此步不可缺少，否则打包的Jar文件双击不可运行。</SPAN><BR><A href="http://img.blog.163.com/photo/cKgJLUhAPqigiIZ3M_gNwA==/303992974847933814.jpg" target=_blank><IMG title="引用 如何将Class打包Jar文件--Eclipse - 紫依韵 - 见人还是人" alt="引用 如何将Class打包Jar文件--Eclipse - 紫依韵 - 见人还是人" src="http://img.blog.163.com/photo/cKgJLUhAPqigiIZ3M_gNwA==/303992974847933814.jpg"></A><BR><BR>稍等一下，就打包成功如下图：出现一个testexe_fat.jar文件。<BR><A href="http://img.blog.163.com/photo/vylOI-8YQ8ePiszY-pIgbg==/4267723596887612768.jpg" target=_blank><IMG title="引用 如何将Class打包Jar文件--Eclipse - 紫依韵 - 见人还是人" alt="引用 如何将Class打包Jar文件--Eclipse - 紫依韵 - 见人还是人" src="http://img.blog.163.com/photo/vylOI-8YQ8ePiszY-pIgbg==/4267723596887612768.jpg"></A><BR><BR>进入工程所在的目录也可以看到一个testexe_fat.jar文件，双击它，就运行了。如果无误应该弹出像<A href="http://wxq594808632.blog.163.com/blankEditor.html#aaa">图2的界面</A>。如下图:<BR><A href="http://img.blog.163.com/photo/SIVJ3nZJz7JWNvgF3uHW-w==/4234509549635719064.jpg" target=_blank><IMG title="引用 如何将Class打包Jar文件--Eclipse - 紫依韵 - 见人还是人" alt="引用 如何将Class打包Jar文件--Eclipse - 紫依韵 - 见人还是人" src="http://img.blog.163.com/photo/SIVJ3nZJz7JWNvgF3uHW-w==/4234509549635719064.jpg"></A><BR><BR>选择jar文件右键，点击open。相当于双击jar文件如下图:<BR><A href="http://img.blog.163.com/photo/ytBU6BF_ioQxcVwFwk3cQw==/567172078072424804.jpg" target=_blank><IMG title="引用 如何将Class打包Jar文件--Eclipse - 紫依韵 - 见人还是人" alt="引用 如何将Class打包Jar文件--Eclipse - 紫依韵 - 见人还是人" src="http://img.blog.163.com/photo/ytBU6BF_ioQxcVwFwk3cQw==/567172078072424804.jpg"></A><BR><BR>总结：打包Jar文件是将分散Class文件统一封装的好办法。双击运行速度与没打包前运行速度没有区别。打包一定要设置好Main-Class的路径，否则JVM找不到入口程序。<BR><BR>如果不知道如何在Eclipse中安装插件，请参见我的另一篇文章：<A href="http://maidini.blog.163.com/blog/static/37762704200832671334860/" target=_blank>http://maidini.blog.163.com/blog/static/37762704200832671334860/</A><BR><BR><BR></BLOCKQUOTE></div><br>文章来源:<a href='http://wxq594808632.blog.163.com/blog/static/1090797552009384273607'>http://wxq594808632.blog.163.com/blog/static/1090797552009384273607</a><img src ="http://www.blogjava.net/wxq594808632/aggbug/268125.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wxq594808632/" target="_blank">武志强</a> 2009-04-08 16:27 <a href="http://www.blogjava.net/wxq594808632/archive/2009/04/08/268125.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]引用 Eclipse的插件安装</title><link>http://www.blogjava.net/wxq594808632/archive/2009/04/08/268126.html</link><dc:creator>武志强</dc:creator><author>武志强</author><pubDate>Wed, 08 Apr 2009 08:26:00 GMT</pubDate><guid>http://www.blogjava.net/wxq594808632/archive/2009/04/08/268126.html</guid><wfw:comment>http://www.blogjava.net/wxq594808632/comments/268126.html</wfw:comment><comments>http://www.blogjava.net/wxq594808632/archive/2009/04/08/268126.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wxq594808632/comments/commentRss/268126.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wxq594808632/services/trackbacks/268126.html</trackback:ping><description><![CDATA[<div><P>&nbsp;</P>
<P><EM>引用</EM></P>
<BLOCKQUOTE><A href="http://maidini.blog.163.com/" target=_blank>蒋委员长</A> 的 <A href="http://maidini.blog.163.com/blog/static/37762704200832671334860" target=_blank>Eclipse的插件安装</A><BR>
<P>众所周知，Eclipse无法方便快速的开发Swing程序。因为Eclipse没有自带图形化编码窗口，如果要开发图形化程序，只有手动敲代码非常不方便。现在有一个插件Jigloo提供图形化程序开发窗口，可以即拖即显。如何将它安装到Eclipse当中呢？</P>
<P>安装插件一般使用Link方式：Link意味链接，Eclipse加载时通过链接找到安装的插件<BR><A href="http://img.blog.163.com/photo/RoyVqtNFM5UnLdRiuK1rPg==/4829266175424918318.jpg" target=_blank><IMG title="引用 Eclipse的插件安装 - 紫依韵 - 见人还是人" alt="引用 Eclipse的插件安装 - 紫依韵 - 见人还是人" src="http://img.blog.163.com/photo/RoyVqtNFM5UnLdRiuK1rPg==/4829266175424918318.jpg"></A><BR>如上图所示：我的Eclipse路径C:\Program Files\Eclipse 然后将Jigloo解压到Eclipse安装目录中。<FONT color=#ff0000>这里需要注意Jigloo目录下必须要有个叫Eclipse的目录，Eclipse的目录下才是放入features和plugins目录。</FONT><FONT color=black>以上图为例：C:\Program Files\Eclipse\Jigloo\Eclipse 路径里</FONT><FONT color=#ff0000>放入features和plugins目录</FONT><FONT color=#000000>，即features目录路径为：C:\Program Files\Eclipse\Jigloo\Eclipse\features，plugins目录路径为：C:\Program Files\Eclipse\Jigloo\Eclipse\plugins&nbsp; 这里必须要强调目录路径，因为我使用的是Link方式安装插件。</FONT></P>
<P>插件安装位置正确后，就该链接了(Link)。在Eclipse路径C:\Program Files\Eclipse下建立一个<FONT color=#ff0000>links目录</FONT><FONT color=black>(必须这个名字)，并在links目录下建立一个Jigloo.link的文件(文件名必须同插件目录名相同，后缀名必须是link)。最后用记事本打开Jigloo.link文件，填入path = Jigloo(path = 插件目录名)。保存后，重新启动Eclipse。如下图<BR><A href="http://img.blog.163.com/photo/TWURCTTGxyDbJRvuNULfOg==/4525273200577932598.jpg" target=_blank><IMG title="引用 Eclipse的插件安装 - 紫依韵 - 见人还是人" alt="引用 Eclipse的插件安装 - 紫依韵 - 见人还是人" src="http://img.blog.163.com/photo/TWURCTTGxyDbJRvuNULfOg==/4525273200577932598.jpg"></A><BR>在新建项目中出现了一个叫GUI Forms的项目，说明插件安装成功，这就是Jigloo插件提供的图形化开发工具。</FONT></P>
<P>写在最后：<BR>向大家推荐一个插件Aptana，这个插件可以调试Javascript代码和HTML代码。此插件还是第一款支持ajax调试的程序。详见<A href="http://www.aptana.com/">http://www.aptana.com/</A>&nbsp; 插件下载地址<A href="http://update.aptana.com/install/studio/3.2/">http://update.aptana.com/install/studio/3.2/</A><BR><A href="http://img.blog.163.com/photo/qkrRcOjFtYZGw38ZbJcITw==/606860049788829446.jpg" target=_blank><IMG title="引用 Eclipse的插件安装 - 紫依韵 - 见人还是人" alt="引用 Eclipse的插件安装 - 紫依韵 - 见人还是人" src="http://img.blog.163.com/photo/qkrRcOjFtYZGw38ZbJcITw==/606860049788829446.jpg"></A><BR>因为新版本要收费(只有一个月免费试用)，我使用的老版本，安装到Eclipse中有3个按钮（如上图，黄色惊叹号和红色叉）</P></BLOCKQUOTE></div><br>文章来源:<a href='http://wxq594808632.blog.163.com/blog/static/1090797552009384255251'>http://wxq594808632.blog.163.com/blog/static/1090797552009384255251</a><img src ="http://www.blogjava.net/wxq594808632/aggbug/268126.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wxq594808632/" target="_blank">武志强</a> 2009-04-08 16:26 <a href="http://www.blogjava.net/wxq594808632/archive/2009/04/08/268126.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]ajax兼容IE,FF问题</title><link>http://www.blogjava.net/wxq594808632/archive/2009/03/31/268127.html</link><dc:creator>武志强</dc:creator><author>武志强</author><pubDate>Tue, 31 Mar 2009 06:11:00 GMT</pubDate><guid>http://www.blogjava.net/wxq594808632/archive/2009/03/31/268127.html</guid><wfw:comment>http://www.blogjava.net/wxq594808632/comments/268127.html</wfw:comment><comments>http://www.blogjava.net/wxq594808632/archive/2009/03/31/268127.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wxq594808632/comments/commentRss/268127.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wxq594808632/services/trackbacks/268127.html</trackback:ping><description><![CDATA[<div><P>如题，废话不多说。</P>
<P><STRONG><FONT color=#ff0000>JSP页面</FONT></STRONG></P>
<P><STRONG><FONT color=#ff0000>hello.jsp</FONT></STRONG></P>
<P>&lt;%@ page contentType="text/html; charset=GBK" %&gt;<BR>&lt;html&gt;<BR>&lt;head&gt;<BR>&lt;title&gt;AJAX提交页面&lt;/title&gt;<BR>&lt;meta http-equiv="Content-Type" content="text/html; charset=gbk"&gt;<BR>&lt;script type="text/javascript" src="ajax.js"&gt;&lt;/script&gt;<BR>&nbsp;&nbsp; &lt;script type="text/javascript"&gt;<BR>&nbsp;&nbsp; function doso(){<BR>&nbsp;&nbsp;&nbsp;&nbsp; var url = "actAction.do";<BR>&nbsp;&nbsp;&nbsp;&nbsp; var s="武晓强斯蒂芬34-*(&amp;_(*!$^_*!&amp;#!^$+!*#&amp;&amp;";<BR>&nbsp;&nbsp;&nbsp;&nbsp; s=encodeURIComponent(s);&nbsp;&nbsp;<STRONG>&nbsp;&nbsp;&nbsp;<FONT color=#008080> //转换特殊字符</FONT></STRONG><BR>&nbsp;&nbsp;&nbsp;&nbsp; var parameter ="name="+s+"<A href="mailto:&amp;email=abc@abc.com&amp;www=http://wxq594808632.blog.163.com/">&amp;email=abc@abc.com&amp;www=http://wxq594808632.blog.163.com/</A>";<BR>&nbsp;&nbsp;&nbsp;&nbsp; var method = "POST";<BR>&nbsp;&nbsp;&nbsp;&nbsp; function callBack(text){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<STRONG><FONT color=#33cccc>&nbsp;&nbsp; </FONT><FONT color=#008080>//回调函数</FONT></STRONG><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert("调用成功!\n名字为:"+text);<BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp; new Ajax().ajaxRequest(url,parameter,method,callBack);&nbsp;&nbsp;&nbsp;<FONT color=#008080><STRONG>&nbsp; //调用方法发送Request<BR></STRONG></FONT>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; &lt;/script&gt;<BR>&lt;/head&gt;<BR>&lt;body&gt;<BR>&lt;input type="button" value="提交" onclick="doso()"/&gt;<BR>&nbsp;&nbsp; &lt;/body&gt;<BR>&lt;/html&gt;<BR></P>
<P>&nbsp;</P>
<P><STRONG><FONT color=#ff0000>java类</FONT></STRONG></P>
<P><STRONG><FONT color=#ff0000>ActAction.java</FONT></STRONG></P>
<P>package ajaxpost;</P>
<P>import org.apache.struts.action.ActionMapping;<BR>import org.apache.struts.action.ActionForm;<BR>import javax.servlet.http.HttpServletRequest;<BR>import javax.servlet.http.HttpServletResponse;<BR>import org.apache.struts.action.ActionForward;<BR>import org.apache.struts.action.Action;<BR>import java.io.UnsupportedEncodingException;<BR>import java.io.IOException;<BR>import java.io.PrintWriter;</P>
<P>public class ActAction extends Action {</P>
<P>&nbsp;&nbsp;&nbsp; public ActionForward execute(ActionMapping mapping, ActionForm form,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HttpServletRequest request,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HttpServletResponse response) throws<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UnsupportedEncodingException {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //设置字符编码返回的编码<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response.setContentType("text/html;charset=UTF-8");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //接收字符的编码<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; request.setCharacterEncoding("UTF-8");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (UnsupportedEncodingException e) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PrintWriter out = null;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out = response.getWriter();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (IOException ex) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ex.printStackTrace();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String name = request.getParameter("name");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String email = request.getParameter("email");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String www = request.getParameter("www");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(email);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(name);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(www);<BR>&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp;&nbsp; out.print(name+"\n"+email+"\n"+www);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.print(name);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<STRONG><FONT color=#008080>&nbsp; //返回值</FONT></STRONG><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return null;<BR>&nbsp;&nbsp;&nbsp; }<BR>}<BR></P>
<P><STRONG><FONT color=#ff0000>最重要滴</FONT></STRONG></P>
<P><STRONG><FONT color=#ff0000>ajax.js</FONT></STRONG></P>
<P>我用别人的。感谢这位大哥。。</P>
<P><FONT color=#99cc00>/*<BR>author zhangshuling<BR>email&nbsp; </FONT><A href="mailto:zhangshuling1214@126.com"><FONT color=#99cc00>zhangshuling1214@126.com</FONT></A><BR><FONT color=#99cc00>*/</FONT><BR>function&nbsp; Ajax(){<BR>&nbsp;&nbsp;&nbsp; var _xmlHttp = null;<BR>&nbsp;this.createXMLHttpRequest = function(){<BR>&nbsp;&nbsp;try{<BR>&nbsp;&nbsp;&nbsp;if (window.ActiveXObject) {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;_xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<BR>&nbsp;&nbsp;&nbsp;else if (window.XMLHttpRequest) {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;_xmlHttp = new XMLHttpRequest();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}catch(e){<BR>&nbsp;&nbsp;&nbsp;&nbsp; alert(e.name +" : " + e.message);<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>&nbsp;<BR>&nbsp;this.backFunction = function(_backFunction){<BR>&nbsp;&nbsp;if(_xmlHttp.readyState == 4) {<BR>&nbsp;&nbsp;&nbsp;if(_xmlHttp.status == 200) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;_backFunction(_xmlHttp.responseText);//这里可以设置返回类型<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp; _xmlHttp.onreadystatechange = null;<BR>&nbsp;}</P>
<P>&nbsp;this.doPost = function(_url,_parameter,_backFunction){<BR>&nbsp;&nbsp;&nbsp;&nbsp; try{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _xmlHttp.open("POST",_url, false); <BR>&nbsp;&nbsp; _xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");<BR>&nbsp;&nbsp; _xmlHttp.send(_parameter); <BR>&nbsp;&nbsp;&nbsp;}catch(e){<BR>&nbsp;&nbsp;&nbsp; alert(e.name +" : " + e.message);<BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;}<BR>&nbsp;<BR>&nbsp;this.doGet = function(_url,_parameter,_backFunction){<BR>&nbsp;&nbsp;&nbsp; try{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var _random = Math.round(Math.random()*10000);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _xmlHttp.open("GET", (_url+"?random=" +_random +"&amp;" + _parameter), false); <BR>&nbsp;&nbsp;&nbsp;&nbsp; _xmlHttp.send(null); <BR>&nbsp;&nbsp; }catch(e){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(e.name +" : " + e.message);<BR>&nbsp;&nbsp; }<BR>&nbsp;}<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp; this.ajaxRequest = function(_url,_parameter,_method,_backFunction){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.createXMLHttpRequest();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(_method.toLowerCase() == "post"){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.doPost(_url,_parameter,_backFunction);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.doGet(_url,_parameter,_backFunction);&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _xmlHttp.onreadystatechange = this.backFunction(_backFunction);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }catch(err){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //??????IE?????????????????<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }catch(e){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(e.name +" : " + e.message);<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp; }</P>
<P>} </P>
<P><FONT color=#99cc00>/*<BR>&nbsp;var url = "ajax.do";<BR>&nbsp;var parameter = "parameter=parameter";<BR>&nbsp;var method = "post" <BR>&nbsp;<BR>&nbsp;function callBack(text){<BR>&nbsp; ....<BR>&nbsp;}<BR>&nbsp;<BR>&nbsp;new Ajax().ajaxRequest(url,parameter,method,callBack);</FONT></P>
<P><FONT color=#99cc00>*/<BR></FONT></P>
<P>&nbsp;</P>
<P>经过本人FF，IE6，IE7，测试。完全好用</P></div><br>文章来源:<a href='http://wxq594808632.blog.163.com/blog/static/109079755200923121054225'>http://wxq594808632.blog.163.com/blog/static/109079755200923121054225</a><img src ="http://www.blogjava.net/wxq594808632/aggbug/268127.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wxq594808632/" target="_blank">武志强</a> 2009-03-31 14:11 <a href="http://www.blogjava.net/wxq594808632/archive/2009/03/31/268127.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]java读取远程url图片,得到宽高</title><link>http://www.blogjava.net/wxq594808632/archive/2009/03/27/268128.html</link><dc:creator>武志强</dc:creator><author>武志强</author><pubDate>Fri, 27 Mar 2009 08:05:00 GMT</pubDate><guid>http://www.blogjava.net/wxq594808632/archive/2009/03/27/268128.html</guid><wfw:comment>http://www.blogjava.net/wxq594808632/comments/268128.html</wfw:comment><comments>http://www.blogjava.net/wxq594808632/archive/2009/03/27/268128.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wxq594808632/comments/commentRss/268128.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wxq594808632/services/trackbacks/268128.html</trackback:ping><description><![CDATA[<div><P>import java.io.IOException;<BR>import java.awt.image.BufferedImage;<BR>import java.net.URL;<BR>import java.io.BufferedInputStream;<BR>import java.io.OutputStream;<BR>import java.io.FileOutputStream;<BR>import java.io.File;<BR>import javax.imageio.ImageIO;</P>
<P>public class Img2 {<BR><FONT color=#008000>//读取远程url图片,得到宽高</FONT><BR>&nbsp;&nbsp;&nbsp; public int[] returnImgWH(String imgurl) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; boolean b=false;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=#008000>&nbsp;&nbsp;&nbsp; //实例化url</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; URL url = new URL(imgurl);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT color=#008000>//载入图片到输入流<BR></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; java.io.BufferedInputStream bis = new BufferedInputStream(url.openStream());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=#008000>&nbsp; //实例化存储字节数组<BR></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte[] bytes = new byte[100];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=#008000>&nbsp; //设置写入路径以及图片名称<BR></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OutputStream bos = new FileOutputStream(new File( "C:\\thetempimg.gif"));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int len;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while ((len = bis.read(bytes)) &gt; 0) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bos.write(bytes, 0, len);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bis.close();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bos.flush();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bos.close();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=#008000> //关闭输出流<BR></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b=true;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (Exception e) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT color=#008000>//如果图片未找到<BR></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b=false;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int[] a = new int[2];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(b){&nbsp;&nbsp;&nbsp; <FONT color=#ff0000>//图片存在</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT color=#008000>//得到文件</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; java.io.File file = new java.io.File("C:\\thetempimg.gif");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BufferedImage bi = null;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=#008000>&nbsp; //读取图片<BR></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bi = javax.imageio.ImageIO.read(file);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (IOException ex) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ex.printStackTrace();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a[0] = bi.getWidth(); <FONT color=#008000>//获得 宽度<BR></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a[1] = bi.getHeight(); <FONT color=#008000>//获得 高度</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT color=#008000>//删除文件</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file.delete();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=#ff0000> //图片不存在</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a=null;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return a;</P>
<P>&nbsp;&nbsp;&nbsp; }</P>
<P>&nbsp;&nbsp;&nbsp; public static void main(String[] args) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Img2 i = new Img2();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int[] a=i.returnImgWH("<A href="http://www.baidu.com/img/baidu_logo.gif">http://www.baidu.com/img/baidu_logo.gif</A>");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(a==null){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("图片未找到!");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("宽为" + a[0]);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("高为" + a[1]);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; }<BR>}<BR></P>
<P></P></div><br>文章来源:<a href='http://wxq594808632.blog.163.com/blog/static/10907975520092274458465'>http://wxq594808632.blog.163.com/blog/static/10907975520092274458465</a><img src ="http://www.blogjava.net/wxq594808632/aggbug/268128.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wxq594808632/" target="_blank">武志强</a> 2009-03-27 16:05 <a href="http://www.blogjava.net/wxq594808632/archive/2009/03/27/268128.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]SQL多条件排序</title><link>http://www.blogjava.net/wxq594808632/archive/2009/03/24/268129.html</link><dc:creator>武志强</dc:creator><author>武志强</author><pubDate>Tue, 24 Mar 2009 08:44:00 GMT</pubDate><guid>http://www.blogjava.net/wxq594808632/archive/2009/03/24/268129.html</guid><wfw:comment>http://www.blogjava.net/wxq594808632/comments/268129.html</wfw:comment><comments>http://www.blogjava.net/wxq594808632/archive/2009/03/24/268129.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wxq594808632/comments/commentRss/268129.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wxq594808632/services/trackbacks/268129.html</trackback:ping><description><![CDATA[<div><P>如题</P>
<P>默认排序方式为asc,可省略...</P>
<P>select&nbsp; &nbsp;*&nbsp;&nbsp; from&nbsp; &nbsp;table&nbsp; &nbsp;order&nbsp; &nbsp;by&nbsp; &nbsp;t1&nbsp; &nbsp;desc,&nbsp;&nbsp; t2&nbsp; &nbsp;desc&nbsp; ,&nbsp;&nbsp; t3 desc;</P></div><br>文章来源:<a href='http://wxq594808632.blog.163.com/blog/static/109079755200922444356457'>http://wxq594808632.blog.163.com/blog/static/109079755200922444356457</a><img src ="http://www.blogjava.net/wxq594808632/aggbug/268129.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wxq594808632/" target="_blank">武志强</a> 2009-03-24 16:44 <a href="http://www.blogjava.net/wxq594808632/archive/2009/03/24/268129.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]JS的trim方法</title><link>http://www.blogjava.net/wxq594808632/archive/2009/03/20/268130.html</link><dc:creator>武志强</dc:creator><author>武志强</author><pubDate>Fri, 20 Mar 2009 09:10:00 GMT</pubDate><guid>http://www.blogjava.net/wxq594808632/archive/2009/03/20/268130.html</guid><wfw:comment>http://www.blogjava.net/wxq594808632/comments/268130.html</wfw:comment><comments>http://www.blogjava.net/wxq594808632/archive/2009/03/20/268130.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wxq594808632/comments/commentRss/268130.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wxq594808632/services/trackbacks/268130.html</trackback:ping><description><![CDATA[<div><P>&nbsp;function jsTrim(value)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var reg=/^\S$/;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!value) return "";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(value.length==0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return value;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var lp,rp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lp=0;rp=value.length-1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while ((value.charAt(lp)==" "||(value.charCodeAt(lp)&lt;128?(reg.test(value.charAt(lp))==false?true:false):false)||value.charAt(rp)==" "||(value.charCodeAt(rp)&lt;128?(reg.test(value.charAt(rp))==false?true:false):false))&amp;&amp;rp&gt;=lp)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (value.charAt(lp)==" "||value.charCodeAt(lp)&lt;128?(reg.test(value.charAt(lp))==false?true:false):false)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lp++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (value.charAt(rp)==" "||value.charCodeAt(rp)&lt;128?(reg.test(value.charAt(rp))==false?true:false):false)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rp--;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(lp&gt;rp)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return "";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return (value.substring(lp,rp+1));</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P></div><br>文章来源:<a href='http://wxq594808632.blog.163.com/blog/static/10907975520092205931780'>http://wxq594808632.blog.163.com/blog/static/10907975520092205931780</a><img src ="http://www.blogjava.net/wxq594808632/aggbug/268130.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wxq594808632/" target="_blank">武志强</a> 2009-03-20 17:10 <a href="http://www.blogjava.net/wxq594808632/archive/2009/03/20/268130.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]Java实现给图片添加水印</title><link>http://www.blogjava.net/wxq594808632/archive/2009/03/19/268132.html</link><dc:creator>武志强</dc:creator><author>武志强</author><pubDate>Thu, 19 Mar 2009 05:19:00 GMT</pubDate><guid>http://www.blogjava.net/wxq594808632/archive/2009/03/19/268132.html</guid><wfw:comment>http://www.blogjava.net/wxq594808632/comments/268132.html</wfw:comment><comments>http://www.blogjava.net/wxq594808632/archive/2009/03/19/268132.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wxq594808632/comments/commentRss/268132.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wxq594808632/services/trackbacks/268132.html</trackback:ping><description><![CDATA[<div><P>&nbsp;</P>
<P><EM>引用</EM></P>
<BLOCKQUOTE><A href="http://shaoboemail.blog.163.com/" target=_blank>邵波的空间</A> 的 <A href="http://shaoboemail.blog.163.com/blog/static/70461230200871883734727" target=_blank>Java实现给图片添加水印</A><BR>import java.awt.*;<BR>import java.awt.image.*;<BR>import java.io.*;<BR>import javax.swing.*;<BR>import com.sun.image.codec.jpeg.*; 
<P>public class WaterMark ...{<BR>/** *//**<BR>* 给图片添加水印<BR>* @param filePath 需要添加水印的图片的路径<BR>* @param markContent 水印的文字<BR>* @param markContentColor 水印文字的颜色<BR>* @param qualNum 图片质量<BR>* @return<BR>*/<BR>public boolean createMark(String filePath,String markContent,Color markContentColor,float qualNum,String watermark)<BR>...{<BR>ImageIcon imgIcon=new ImageIcon(filePath);<BR>Image theImg =imgIcon.getImage();<BR>int width=theImg.getWidth(null);<BR>int height= theImg.getHeight(null);<BR>//ImageIcon waterIcon=new ImageIcon(watermark);<BR>//Image waterImg =waterIcon.getImage();<BR>BufferedImage bimage = new BufferedImage(width,height, BufferedImage.TYPE_INT_RGB);<BR>Graphics2D g=bimage.createGraphics();<BR>g.setColor(markContentColor);<BR>g.setBackground(Color.white);<BR>g.drawImage(theImg, 0, 0, null );<BR>//g.drawImage(waterImg, width*2, height, null );<BR>g.drawString(markContent,width-100,height-30); //添加水印的文字和设置水印文字出现的内容<BR>g.dispose();<BR>try...{<BR>FileOutputStream out=new FileOutputStream(filePath);<BR>JPEGImageEncoder encoder =JPEGCodec.createJPEGEncoder(out);<BR>JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bimage);<BR>param.setQuality(qualNum, true);<BR>encoder.encode(bimage, param);<BR>out.close();<BR>}catch(Exception e)<BR>...{ return false; }<BR>return true;<BR>}<BR>public static void main(String arg[])<BR>...{<BR>WaterMark wk=new WaterMark();<BR>if(wk.createMark("D:\1.jpg","Welcome!",Color.WHITE,70f,""))...{<BR>System.out.println("制作成功");<BR>}else...{<BR>System.out.println("失败了！");<BR>}<BR>}<BR>}</P></BLOCKQUOTE></div><br>文章来源:<a href='http://wxq594808632.blog.163.com/blog/static/109079755200921911832219'>http://wxq594808632.blog.163.com/blog/static/109079755200921911832219</a><img src ="http://www.blogjava.net/wxq594808632/aggbug/268132.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wxq594808632/" target="_blank">武志强</a> 2009-03-19 13:19 <a href="http://www.blogjava.net/wxq594808632/archive/2009/03/19/268132.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]如何防止同一个账户被多个人同时登陆? </title><link>http://www.blogjava.net/wxq594808632/archive/2009/03/19/268131.html</link><dc:creator>武志强</dc:creator><author>武志强</author><pubDate>Thu, 19 Mar 2009 05:19:00 GMT</pubDate><guid>http://www.blogjava.net/wxq594808632/archive/2009/03/19/268131.html</guid><wfw:comment>http://www.blogjava.net/wxq594808632/comments/268131.html</wfw:comment><comments>http://www.blogjava.net/wxq594808632/archive/2009/03/19/268131.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wxq594808632/comments/commentRss/268131.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wxq594808632/services/trackbacks/268131.html</trackback:ping><description><![CDATA[<div><P>&nbsp;</P>
<P><EM>引用</EM></P>
<BLOCKQUOTE><A href="http://shaoboemail.blog.163.com/" target=_blank>邵波的空间</A> 的 <A href="http://shaoboemail.blog.163.com/blog/static/70461230200832843325224" target=_blank>如何防止同一个账户被多个人同时登陆? </A><BR>
<P>1.用session超时,session为null就表示下线了 &nbsp; &nbsp; &nbsp; <BR>&nbsp; &nbsp; &nbsp; <BR>&nbsp; 2.也可以采用数据库中设置 &nbsp; &nbsp; 临时表 &nbsp; &nbsp; 来处理 &nbsp; &nbsp; &nbsp; <BR>&nbsp; 一个用户登陆时向表中插进一条记录，用户离开时候删除该记录 &nbsp; &nbsp; &nbsp; <BR>&nbsp; 如想统计在线人数，简单地执行 &nbsp; &nbsp; &nbsp; <BR>&nbsp; select &nbsp; &nbsp; count(*) &nbsp; &nbsp; from &nbsp; &nbsp; table... &nbsp; &nbsp; 即可 &nbsp; &nbsp; &nbsp; <BR>&nbsp; &nbsp; &nbsp; <BR>&nbsp; 3.application对象中可以记住现在的人数，application的生命周期和服务器的生命周期一样长。 &nbsp; &nbsp; &nbsp; <BR>&nbsp; &nbsp; &nbsp; <BR><CLK>&nbsp; 4.还有一种方法要用到一个文件global.jsa &nbsp; &nbsp; ，方法是（在JSP中）是sessionDestroy(),其中它是以session对象为参数的。还有要把global.jsa文件必须房子和JSP<NOBR style="BACKGROUND: url(http://control.clickeye.com.cn/images/line5.gif) repeat-x 50% bottom; PADDING-BOTTOM: 2px; COLOR: #6600ff" target="_blank" false;? this);? kwC(event,4)?>程序</NOBR>相同的文件目录内才行。 &nbsp; &nbsp; &nbsp; </CLK><BR>&nbsp; &nbsp; &nbsp; <BR>&nbsp; 5.网页自动刷新的代码是： &nbsp; &nbsp; &nbsp; <BR>&nbsp; 在文件头部加上 &nbsp; &nbsp; &nbsp; <BR>&nbsp; &lt;meta &nbsp; &nbsp; http-equiv="refresh" &nbsp; &nbsp; content="15"&gt; &nbsp; &nbsp; &nbsp; <BR>&nbsp; 刷新间隔时间是15秒 &nbsp; &nbsp; &nbsp; <BR>&nbsp; &nbsp; &nbsp; <BR>&nbsp; &nbsp; &nbsp; <BR>&nbsp; 6.在session中加入监听类,类的示例代码如下:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR></P>
<P>onLineUser.java-------------------------------------------------------------------------------------------</P>
<P>package com.shaobo.struts.action;</P>
<P>import javax.servlet.http.*;<BR>import javax.servlet.*;<BR>import java.util.*;</P>
<P>public class onLineUser implements HttpSessionBindingListener {<BR>&nbsp;public onLineUser() {<BR>&nbsp;}</P>
<P>&nbsp;private Vector users = new Vector();</P>
<P>&nbsp;public int getCount() {<BR>&nbsp;&nbsp;users.trimToSize();<BR>&nbsp;&nbsp;return users.capacity();<BR>&nbsp;}</P>
<P>&nbsp;public boolean existUser(String userName) {<BR>&nbsp;&nbsp;users.trimToSize();<BR>&nbsp;&nbsp;boolean existUser = false;<BR>&nbsp;&nbsp;for (int i = 0; i &lt; users.capacity(); i++) {<BR>&nbsp;&nbsp;&nbsp;if (userName.equals((String) users.get(i))) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;existUser = true;<BR>&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;return existUser;<BR>&nbsp;}</P>
<P>&nbsp;public boolean deleteUser(String userName) {<BR>&nbsp;&nbsp;users.trimToSize();<BR>&nbsp;&nbsp;if (existUser(userName)) {<BR>&nbsp;&nbsp;&nbsp;int currUserIndex = -1;<BR>&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt; users.capacity(); i++) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;if (userName.equals((String) users.get(i))) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;currUserIndex = i;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;if (currUserIndex != -1) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;users.remove(currUserIndex);<BR>&nbsp;&nbsp;&nbsp;&nbsp;users.trimToSize();<BR>&nbsp;&nbsp;&nbsp;&nbsp;return true;<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;return false;<BR>&nbsp;}</P>
<P>&nbsp;public Vector getOnLineUser() {<BR>&nbsp;&nbsp;return users;<BR>&nbsp;}</P>
<P>&nbsp;public void valueBound(HttpSessionBindingEvent e) {<BR>&nbsp;&nbsp;users.trimToSize();<BR>&nbsp;&nbsp;if (!existUser(e.getName())) {<BR>&nbsp;&nbsp;&nbsp;users.add(e.getName());<BR>&nbsp;&nbsp;&nbsp;System.out.print(e.getName() + "\t登入到系统\t"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ (new Date()));<BR>&nbsp;&nbsp;&nbsp;System.out.println("在线用户数为：" + getCount());<BR>&nbsp;&nbsp;} else<BR>&nbsp;&nbsp;&nbsp;System.out.println(e.getName() + "已经存在");<BR>&nbsp;}</P>
<P>&nbsp;public void valueUnbound(HttpSessionBindingEvent e) {<BR>&nbsp;&nbsp;users.trimToSize();<BR>&nbsp;&nbsp;String userName = e.getName();<BR>&nbsp;&nbsp;deleteUser(userName);<BR>&nbsp;&nbsp;System.out.print(userName + "\t退出系统\t" + (new Date()));<BR>&nbsp;&nbsp;System.out.println("在线用户数为：" + getCount());<BR>&nbsp;}<BR>}<BR></P>
<P>login.jsp--------------------------------------------------------------------------------------------</P>
<P>&lt;%@ page language="java" import="java.util.*" pageEncoding="GBK"%&gt;<BR>&lt;%<BR>String path = request.getContextPath();<BR>String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";<BR>%&gt;</P>
<P>&lt;jsp:useBean id="onlineuser" class="com.shaobo.struts.action.onLineUser"<BR>&nbsp;scope="application" /&gt;<BR>&lt;html&gt;<BR>&nbsp;&lt;head&gt;<BR>&nbsp;&lt;/head&gt;<BR>&nbsp;&lt;body onUnload="postMessage()"&gt;<BR>&nbsp;&nbsp;&lt;center&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;p&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;h1&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;登陆成功，欢迎访问<BR>&nbsp;&nbsp;&nbsp;&lt;/h1&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;/p&gt;<BR>&nbsp;&nbsp;&lt;/center&gt;<BR>&nbsp;&nbsp;&lt;%<BR>&nbsp;&nbsp;session = request.getSession(false);<BR>&nbsp;&nbsp;%&gt;<BR>&nbsp;&nbsp;&lt;%<BR>&nbsp;&nbsp;&nbsp;String username = request.getParameter("username");<BR>&nbsp;&nbsp;&nbsp;if (onlineuser.existUser(username)) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;out.println("用户&lt;font color=red&gt;" + username<BR>&nbsp;&nbsp;&nbsp;&nbsp;+ "&lt;/font&gt;已经登陆！");<BR>&nbsp;&nbsp;&nbsp;} else {<BR>&nbsp;&nbsp;&nbsp;&nbsp;session.setMaxInactiveInterval(50); //Sesion有效时长，以秒为单位&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;session.setAttribute(username, onlineuser);<BR>&nbsp;&nbsp;&nbsp;&nbsp;out.println("欢迎新用户:&lt;font color=red&gt;" + username<BR>&nbsp;&nbsp;&nbsp;&nbsp;+ "&lt;/font&gt;登陆到系统！");<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;out.println("&lt;br&gt;当前在线用户人数:&lt;font color=red&gt;"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ onlineuser.getCount() + "&lt;/font&gt;&lt;br&gt;");<BR>&nbsp;&nbsp;&nbsp;String ip = request.getRemoteAddr();<BR>&nbsp;&nbsp;&nbsp;out.println("&lt;br&gt;IP:&lt;font color=red&gt;" + ip + "&lt;/font&gt;&lt;br&gt;");<BR>&nbsp;&nbsp;&nbsp;Vector vt = onlineuser.getOnLineUser();<BR>&nbsp;&nbsp;&nbsp;Enumeration e = vt.elements();<BR>&nbsp;&nbsp;&nbsp;out.println("在线用户列表");<BR>&nbsp;&nbsp;&nbsp;out.println("&lt;table border=1&gt;");<BR>&nbsp;&nbsp;&nbsp;out.println("&lt;tr&gt;&lt;td&gt;用户名&lt;/td&gt;&lt;/tr&gt;");<BR>&nbsp;&nbsp;&nbsp;while (e.hasMoreElements()) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;out.println("&lt;tr&gt;&lt;td&gt;");<BR>&nbsp;&nbsp;&nbsp;&nbsp;out.println((String) e.nextElement() + "&lt;br&gt;");<BR>&nbsp;&nbsp;&nbsp;&nbsp;out.println("&lt;/td&gt;&lt;/tr&gt;");<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;out.println("&lt;/table&gt;");<BR>&nbsp;&nbsp;%&gt;<BR>&nbsp;&nbsp;&lt;center&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;p&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;/p&gt;<BR>&nbsp;&nbsp;&nbsp;[<BR>&nbsp;&nbsp;&nbsp;&lt;a href="javascript:window.close()"&gt;关闭窗口&lt;/a&gt;]<BR>&nbsp;&nbsp;&nbsp;&lt;%<BR>&nbsp;&nbsp;&nbsp;&nbsp;out.println("&lt;p&gt;&lt;a href='index.jsp'&gt;退出系统&lt;/a&gt;&lt;/p&gt;");<BR>&nbsp;&nbsp;&nbsp;%&gt;<BR>&nbsp;&nbsp;&lt;/center&gt;<BR>&nbsp;&nbsp;&lt;Script&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function postMessage(){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;%onlineuser.deleteUser(request.getParameter("username"));%&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp; &lt;/Script&gt;<BR>&nbsp;&lt;/body&gt;<BR>&lt;/html&gt;</P>
<P>欢迎光临邵波的空间` <A href="http://blog.sina.com.cn/shaobolive">http://blog.sina.com.cn/shaobolive</A> </P>
<P>QQ:343269876<BR></P></BLOCKQUOTE></div><br>文章来源:<a href='http://wxq594808632.blog.163.com/blog/static/10907975520092191192874'>http://wxq594808632.blog.163.com/blog/static/10907975520092191192874</a><img src ="http://www.blogjava.net/wxq594808632/aggbug/268131.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wxq594808632/" target="_blank">武志强</a> 2009-03-19 13:19 <a href="http://www.blogjava.net/wxq594808632/archive/2009/03/19/268131.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]java文件操作2</title><link>http://www.blogjava.net/wxq594808632/archive/2009/03/19/268133.html</link><dc:creator>武志强</dc:creator><author>武志强</author><pubDate>Thu, 19 Mar 2009 05:18:00 GMT</pubDate><guid>http://www.blogjava.net/wxq594808632/archive/2009/03/19/268133.html</guid><wfw:comment>http://www.blogjava.net/wxq594808632/comments/268133.html</wfw:comment><comments>http://www.blogjava.net/wxq594808632/archive/2009/03/19/268133.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wxq594808632/comments/commentRss/268133.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wxq594808632/services/trackbacks/268133.html</trackback:ping><description><![CDATA[<div>一.获得控制台用户输入的信息 <BR><BR>/** *//**获得控制台用户输入的信息 <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @return <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @throws IOException <BR>&nbsp;&nbsp;&nbsp;&nbsp; */ <BR>&nbsp;&nbsp;&nbsp; public String getInputMessage() throws IOException...{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("请输入您的命令∶"); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte buffer[]=new byte[1024]; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int count=System.in.read(buffer); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char[] ch=new char[count-2];//最后两位为结束符，删去不要 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int i=0;i&lt;count-2;i++) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ch[i]=(char)buffer[i]; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String str=new String(ch); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return str; <BR>&nbsp;&nbsp;&nbsp; } <BR>可以返回用户输入的信息，不足之处在于不支持中文输入，有待进一步改进。 <BR><BR>二.复制文件 <BR><BR>1.以文件流的方式复制文件 <BR><BR>/** *//**以文件流的方式复制文件 <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @param src 文件源目录 <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @param dest 文件目的目录 <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @throws IOException&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; */ <BR>&nbsp;&nbsp;&nbsp; public void copyFile(String src,String dest) throws IOException...{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileInputStream in=new FileInputStream(src); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File file=new File(dest); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!file.exists()) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file.createNewFile(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileOutputStream out=new FileOutputStream(file); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int c; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte buffer[]=new byte[1024]; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while((c=in.read(buffer))!=-1)...{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int i=0;i&lt;c;i++) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.write(buffer[i]);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; in.close(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.close(); <BR>&nbsp;&nbsp;&nbsp; } <BR>该方法经过测试，支持中文处理，并且可以复制多种类型，比如txt，xml，jpg，doc等多种格式 <BR><BR>三.写文件 <BR><BR>1.利用PrintStream写文件 <BR><BR>/** *//** <BR>&nbsp;&nbsp;&nbsp;&nbsp; * 文件输出示例 <BR>&nbsp;&nbsp;&nbsp;&nbsp; */ <BR>&nbsp;&nbsp;&nbsp; public void PrintStreamDemo()...{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try ...{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileOutputStream out=new FileOutputStream("D:/test.txt"); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PrintStream p=new PrintStream(out); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int i=0;i&lt;10;i++) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p.println("This is "+i+" line"); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (FileNotFoundException e) ...{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp; } <BR>2.利用StringBuffer写文件 <BR><BR>public void StringBufferDemo() throws IOException......{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File file=new File("/root/sms.log"); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!file.exists()) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file.createNewFile(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileOutputStream out=new FileOutputStream(file,true);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int i=0;i&lt;10000;i++)......{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringBuffer sb=new StringBuffer(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append("这是第"+i+"行:前面介绍的各种方法都不关用,为什么总是奇怪的问题 "); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.write(sb.toString().getBytes("utf-8")); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.close(); <BR>&nbsp;&nbsp;&nbsp; } <BR>该方法可以设定使用何种编码，有效解决中文问题。 <BR><BR>四.文件重命名 <BR><BR><BR>&nbsp;&nbsp;&nbsp; /** *//**文件重命名 <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @param path 文件目录 <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @param oldname&nbsp; 原来的文件名 <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @param newname 新文件名 <BR>&nbsp;&nbsp;&nbsp;&nbsp; */ <BR>&nbsp;&nbsp;&nbsp; public void renameFile(String path,String oldname,String newname)...{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!oldname.equals(newname))...{//新的文件名和以前文件名不同时,才有必要进行重命名 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File oldfile=new File(path+"/"+oldname); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File newfile=new File(path+"/"+newname); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(newfile.exists())//若在该目录下已经有一个文件和新文件名相同，则不允许重命名 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(newname+"已经存在！"); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else...{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oldfile.renameTo(newfile); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; }五.转移文件目录 <BR><BR><BR>转移文件目录不等同于复制文件，复制文件是复制后两个目录都存在该文件，而转移文件目录则是转移后，只有新目录中存在该文件。 <BR><BR>&nbsp;&nbsp;&nbsp; /** *//**转移文件目录 <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @param filename 文件名 <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @param oldpath 旧目录 <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @param newpath 新目录 <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @param cover 若新目录下存在和转移文件具有相同文件名的文件时，是否覆盖新目录下文件，cover=true将会覆盖原文件，否则不操作 <BR>&nbsp;&nbsp;&nbsp;&nbsp; */ <BR>&nbsp;&nbsp;&nbsp; public void changeDirectory(String filename,String oldpath,String newpath,boolean cover)...{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!oldpath.equals(newpath))...{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File oldfile=new File(oldpath+"/"+filename); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File newfile=new File(newpath+"/"+filename); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(newfile.exists())...{//若在待转移目录下，已经存在待转移文件 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(cover)//覆盖 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oldfile.renameTo(newfile); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("在新目录下已经存在："+filename); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else...{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oldfile.renameTo(newfile); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; } <BR><BR><BR><BR>六.读文件 <BR><BR>1.利用FileInputStream读取文件 <BR><BR><BR>&nbsp;&nbsp;&nbsp; /** *//**读文件 <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @param path <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @return <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @throws IOException <BR>&nbsp;&nbsp;&nbsp;&nbsp; */ <BR>&nbsp;&nbsp;&nbsp; public String FileInputStreamDemo(String path) throws IOException...{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File file=new File(path); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!file.exists()||file.isDirectory()) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new FileNotFoundException(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileInputStream fis=new FileInputStream(file); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte[] buf = new byte[1024]; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringBuffer sb=new StringBuffer(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while((fis.read(buf))!=-1)...{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(new String(buf));&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; buf=new byte[1024];//重新生成，避免和上次读取的数据重复 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return sb.toString(); <BR>&nbsp;&nbsp;&nbsp; } <BR><BR><BR>2.利用BufferedReader读取 <BR><BR>在IO操作，利用BufferedReader和BufferedWriter效率会更高一点 <BR><BR>&nbsp;&nbsp;&nbsp; /** *//**读文件 <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @param path <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @return <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @throws IOException <BR>&nbsp;&nbsp;&nbsp;&nbsp; */ <BR>&nbsp;&nbsp;&nbsp; public String BufferedReaderDemo(String path) throws IOException...{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File file=new File(path); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!file.exists()||file.isDirectory()) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new FileNotFoundException(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BufferedReader br=new BufferedReader(new FileReader(file)); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String temp=null; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringBuffer sb=new StringBuffer(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; temp=br.readLine(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(temp!=null)...{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(temp+" "); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; temp=br.readLine(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return sb.toString(); <BR>&nbsp;&nbsp;&nbsp; } <BR><BR><BR>3.利用dom4j读取xml文件 <BR><BR>&nbsp;&nbsp;&nbsp; /** *//**从目录中读取xml文件 <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @param path 文件目录 <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @return <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @throws DocumentException <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @throws IOException <BR>&nbsp;&nbsp;&nbsp;&nbsp; */ <BR>&nbsp;&nbsp;&nbsp; public Document readXml(String path) throws DocumentException, IOException...{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File file=new File(path); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BufferedReader bufferedreader = new BufferedReader(new FileReader(file)); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SAXReader saxreader = new SAXReader(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Document document = (Document)saxreader.read(bufferedreader); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bufferedreader.close(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return document; <BR>&nbsp;&nbsp;&nbsp; } <BR><BR><BR>七.创建文件(文件夹) <BR><BR>1.创建文件夹&nbsp; /** *//**创建文件夹 <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @param path&nbsp; 目录 <BR>&nbsp;&nbsp;&nbsp;&nbsp; */ <BR>&nbsp;&nbsp;&nbsp; public void createDir(String path)...{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File dir=new File(path); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!dir.exists()) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dir.mkdir(); <BR>&nbsp;&nbsp;&nbsp; } <BR>2.创建新文件 /** *//**创建新文件 <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @param path 目录 <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @param filename 文件名 <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @throws IOException <BR>&nbsp;&nbsp;&nbsp;&nbsp; */ <BR>&nbsp;&nbsp;&nbsp; public void createFile(String path,String filename) throws IOException...{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File file=new File(path+"/"+filename); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!file.exists()) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file.createNewFile(); <BR>&nbsp;&nbsp;&nbsp; } <BR>八.删除文件(目录) <BR><BR>1.删除文件&nbsp;&nbsp;&nbsp;&nbsp; /** *//**删除文件 <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @param path 目录 <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @param filename 文件名 <BR>&nbsp;&nbsp;&nbsp;&nbsp; */ <BR>&nbsp;&nbsp;&nbsp; public void delFile(String path,String filename)...{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File file=new File(path+"/"+filename); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(file.exists()&amp;&amp;file.isFile()) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file.delete(); <BR>&nbsp;&nbsp;&nbsp; } <BR>2.删除目录 <BR>要利用File类的delete()方法删除目录时，必须保证该目录下没有文件或者子目录，否则删除失败，因此在实际应用中，我们要删除目录，必须利用递归删除该目录下的所有子目录和文件，然后再删除该目录。&nbsp; /** *//**递归删除文件夹 <BR>&nbsp;&nbsp;&nbsp;&nbsp; * @param path <BR>&nbsp;&nbsp;&nbsp;&nbsp; */ <BR>&nbsp;&nbsp;&nbsp; public void delDir(String path)...{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File dir=new File(path); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(dir.exists())...{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File[] tmp=dir.listFiles(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int i=0;i&lt;tmp.length;i++)...{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(tmp[i].isDirectory())...{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; delDir(path+"/"+tmp[i].getName()); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else...{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tmp[i].delete(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dir.delete(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp; } </div><br>文章来源:<a href='http://wxq594808632.blog.163.com/blog/static/109079755200921911749952'>http://wxq594808632.blog.163.com/blog/static/109079755200921911749952</a><img src ="http://www.blogjava.net/wxq594808632/aggbug/268133.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wxq594808632/" target="_blank">武志强</a> 2009-03-19 13:18 <a href="http://www.blogjava.net/wxq594808632/archive/2009/03/19/268133.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>