??xml version="1.0" encoding="utf-8" standalone="yes"?>av一区二区三区,欧美日韩在线精品,一区二区高清在线http://www.aygfsteel.com/tianshi0253/Standing on Shoulders of Giantszh-cnFri, 20 Jun 2025 01:05:16 GMTFri, 20 Jun 2025 01:05:16 GMT60[导入]化Spring(1)--配置文ghttp://www.aygfsteel.com/tianshi0253/articles/209793.html姚文?/dc:creator>姚文?/author>Sat, 21 Jun 2008 16:10:00 GMThttp://www.aygfsteel.com/tianshi0253/articles/209793.htmlhttp://www.aygfsteel.com/tianshi0253/comments/209793.htmlhttp://www.aygfsteel.com/tianshi0253/articles/209793.html#Feedback0http://www.aygfsteel.com/tianshi0253/comments/commentRss/209793.htmlhttp://www.aygfsteel.com/tianshi0253/services/trackbacks/209793.html 作? tianshi0253  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/202859  发表旉: 2008q?6?3?

声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任!

作者:江南白衣 
   
                           ?/strong>

    Zh都爱Spring加Hibernate?br />    但Spring MVC+hibernate的Sample如Appfuse的代码却不得最z优好读,如果在自q目中l发挥我们最擅长的依L葫芦大法Q美好愿望未必会实现?
     所以,Pramatic_不灭。这个系列就是探L适合自己的Spring+Hibernate模式?br />    
                              I-配置文g?/strong>

     我厌倦一切配|文件繁重的框架?
     最好的情况是,框架提供极端灉|复杂的配|方式,但只在你需要的时?/strong>?br /> 
     Spring提供了三U可能来化XML。随着国内用户水^的提高,q些基本的简化技巧大安已掌握?br />     大家可以直接看第3Q第4?-Spring 1.2, Spring 2.0的后l改q?/p>

1.1.autowire="byName" /"byType"

     假设Controller有一个属性名为customerDAOQSpring׃在配|文仉查找有没有名字ؓCustomerDAO的bean, 自动为Controller注入?br />     如果bean有两个属性,一个想默认注入Q一个想自定义,只要讑֮了autowireQ然后显式的声明那个惌定义的,可以达到要求。这应了需求,在需要特别配|的时候就提供配置Q否则给我一个默认注入?br />
     q有一个更懒的地方Q在最最栚w?lt;beans>节点写一句default-autovwrie="byName"Q可以让文g里的所有bean 都默认autowrie?br />    不过Rod认ؓ开发期可以q样Q但Production Server上不应该使用Autowire。而我觉得那些自定义一ơ的地方比如TranscationManager应该详细定义Q而Dao,Controllerq种大量重复定义的bean可以偷Ҏ了?/p>

1.2.<bean>节点之间抽象公共定义?Inner Bean

    q太方便懒h了,想不C个独立的XML节点都可以玩l承和派生,子节Ҏ有父节点的全部属性?br />    最好用的地方就是那个Transtion Proxy的定义。先定义一个又长又冗的父类Q然后用子类ȝ承它?br />   
    另外Q还有一个Inner Bean的机Ӟ可以把DAO写成Proxy的内部类。ؓ什么要写成内部c?Z让Proxy冒名替它去让Controller Autowire?详见后面的示?

1.3. 宽松的配|? To XML or Not to XML 
    据说Spring比Struts的配|宽松了很多Q这q人把东西从配|文件中撤回原码中的Z?br />    不赞成什么都往配置文g里晒Q造成了Rich Information的配|文Ӟ修改或者查看的时候,要同时打开配置文g和原码才能清楚一切?
    而我希望配置文g集中做一些整体的配置Q还有框架必ȝ、无需理的冗余代码。而一些细节的变化不大的配|和逻辑Q就量别往里塞了。因此,Success/Fail View 的配|,不徏议放在里面?/p>

2.化后的配|文?/strong>

1.Controller只剩下一?/p>

<bean name="customerController" class="org.springside.bookstore.web.CustomerController" autowire="byName"/>

 

2.DAO也只剩一?/p>

<bean id="customerDAO" class="org.springside.bookstore.dao.CustomerDao"/>

 

3.Servicecd剩下5?

  <bean id="customerManager" parent="baseTxService">
        <property name="target">
            <bean class="org.springside.bookstore.service.CustomerManager"/>
        </property>
    </bean>

 

3.Spring 1.2后xml语法?br />
 
最主要的简化是把属性值和引用bean?strong>子节?/strong>变回?strong>属性?/strong>Q对不喜Ƣautowire的兄弟比较有用?br /> 当然Q如果value要CDATA的时候还是要用子节点。另外,list的值可以用I格隔开也比较实用?/p>

1.属性?br />
  <property name="foo">
  <value>fooValue</value>
  </property>
  化ؓ
  <property name="foo" value="fooValue"/>
 
2.引用 bean
<property name="foo">
<ref bean="fooBean">
</property>
化ؓ
<property name="foo" ref="fooBean"/>
 

3. list可以化ؓI格分开的字W串
  
<property name="myFriendList">
 <list>
   <value>gigix</value>
        <value>wuyu</value>
 </list>
</property>
化ؓ
<property name="myFriendList" value="gigix wuyu"/>
    
  
4.Spring 2.0来了
   如果没什么外力刺ȀQspring xml 可能p样不会变了。但现在xml成了q街老鼠Q被ror的默认配|和JDK5的annotation逼得不行Q当然就要l求变?br />   比如有好事者认为,节点名必Mbean打头Q附加一个属性id来表Cbean名;属性值必L一个property子节点,子节点上有个属性name来表C属性名Q是l机器看的很不直观的东西?
<bean id="customerDAO" class="org.springside...CustomerDAO">
 <property name="maxCount" value="10">
</bean>
 
lh看的东西应该写?
<customerDAO class="org.springside....CustomerDAO" maxCount="10"/>
 

Spring 2.0正用schema实现cM的语法,具体L它的JPetStore sample?br />
5.使用Spring自带的DTD使编辑器Smart.

    如果没有用Eclipse的Spring插gQ那臛_也要使用spring自带的dtd使XML~辑器smart一些,能够自动Z生成属?判断节点/属性名U有没有拼错{?br />
6.q有更变态的化配|方?/strong>
    比如autoproxyQ不q我觉得更简化就不可控了Q所以没有采用?/p>

 

相关文章Q?/p>

化Spring(1)--配置文g

化Spring(2)--Model?/a>

化Spring(3)--Controller?/a>

化Spring(4)--View?/a>

 


本文的讨Z很精彩,览讨论>>


JavaEye推荐




文章来源:http://tianshi0253.javaeye.com/blog/202859

]]>
[导入]化Spring(2)--Model?/title><link>http://www.aygfsteel.com/tianshi0253/articles/209792.html</link><dc:creator>姚文?/dc:creator><author>姚文?/author><pubDate>Sat, 21 Jun 2008 16:10:00 GMT</pubDate><guid>http://www.aygfsteel.com/tianshi0253/articles/209792.html</guid><wfw:comment>http://www.aygfsteel.com/tianshi0253/comments/209792.html</wfw:comment><comments>http://www.aygfsteel.com/tianshi0253/articles/209792.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/tianshi0253/comments/commentRss/209792.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/tianshi0253/services/trackbacks/209792.html</trackback:ping><description><![CDATA[ <br/> 作? <a >tianshi0253</a>  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/202860</a>  发表旉: 2008q?6?3? <br/><br/> 声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任! <br/><br/> <p> 因ؓSpring自带的sampleL们的实际目很远Q所以官方一点的model层模式展现就靠Appfuse了?br />    但Appfuse的model层d有一个DAO接口、一个DAOImplcR一个Service接口、一个ServiceImplcR一个DataObject.....大概只有受惯了虐待的人才会欣然接受吧?br />    另外QDomain-Driven逢初一、十五也会被拿出来讨Z遍?br /><br />    其实无论什么模式,都不q是一Uh为的划分、抽象和装。只要在团队里理解一_自我感觉优雅p了?br />     我的是,一开始DO和Manager一生一旦包演全场,DO作ؓU数据蝲体,而ManagercL|商业方法,用getHibernateTemplate()直接讉K数据库,不强制基于接口编E。当某天pȝ复杂C直觉上需要将DAO层和Service层分开Ӟ再分开好了?br /><br />    <strong><span style="font-size: medium;">1.DataObjectc?br /></span>     </strong>好听点也可以叫Domain Object。Domain Driven  Development虽然׃hQ但因ؓJava下的ORM框架都是ZData Mapper模式的,没有Ruby On Rails中那UActive Recorder的模式。所以,q是压下了这个欲望,Data ObjectUa作一个数据蝲体,而把数据库访问与商业逻辑操作l一攑ֈManagercM?br /><br />    <strong><span style="font-size: medium;">2.Managerc?/span></strong><br />    我的ManagercLAppfuse中DAOcMServicecȝl合体,因ؓQ?br /><br />    <strong>2.1 不想使用UDAO</strong><br />     以往的DAO是ؓ了透明不同数据库间的差异,而现在Hibernate已经做的很好。所以目前纯DAO的更大作用是Z来可以切换到别的ORMҎ比如iBatisQ但一个Pragmaic的程序员昄不会无聊Cؓ了这个机会不大的理由Q现在就d一个纯DAO层,目又不是Appfuse那样Zdemo各种ORMҎ而存在?br /><br />    <strong>2.2 也不想用Service层来为Dao解?br /></strong>    在JPetStore里有一个很薄的Service层,Fascade了一堆DAOc,把这些DAOcȝ所有方法都늡的重复了一遍。理Z一个Managercd以管理数个Daoc,可以避免Dao之间直接耦合。但既然有Manager的情况下Q商业逻辑都是写在ManagercȝQ那样子Managergq是调用另一个Manager比较妥当Q调用裸Dao可能存在忽略了某些逻辑。所以,耦合又从Dao层升到Service层了?br />     所以,除非你做的是薄的不带逻辑的Service层,否则没有解耦的意义?br />    何况Q对一个不是死搬书的Designer来说Q组件边界之内的cM间的耦合q不是耦合?br /><br />    <span style="font-size: medium;"><strong>3.去除不必要的Z接口~程</strong><br /></span>    众所周知QSpring是提倡基于接口编E的?br />    但有些Managerc,比如SaleOrderManager Q只?%的机会再有另一个Impl实现?5%旉里这两兄弟站一P像C++里的.h?cppQ徒增维护的J琐(l常要同步两个文件的函数声明)Q和代码览跌{时的不便(比如从Controlerc跟t到ServicecLQ只能蟩转到接口cȝ相应函数Q还要再按一ơ复杂的热键才蟩转到实现c?<br />    qMartin Flower都说Q强制每个类都分L口和实现是过犹不及。只在有多个独立实现Q或者需要消除对实现cȝ依赖Ӟ才需要分L口?br /><br />    <strong>3.1 DAO被强制用接口的原?/strong><br />    Spring IOC本n是不会强制基于接口的Q但DAOcM般要使用Spring的声明式事务机制Q而声明式的事务机制是使用Spring AOP来实现的。Spring AOP的实现机制包括动态代理和Cgilib2Q其中Spring AOP默认使用的Java动态代理是必须Z接口Q所以就要求Z接口了?br />    <br />    <strong>3.2 解决Ҏ</strong><br />    那就让Spring AOP改用CGLib2Q生成目标类的子cdQ我们只要指定用声明式事务的FactoryBean使用CGLib的方式来实现AOPQ就可以不基于接口编E了?br />    指定的方式ؓ<strong>讄proxyTargetClass为true</strong>。如下:</p> <pre name="code" class="xml"><bean class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" id="baseService" abstract="true"> <property name="transactionManager" ref="transactionManager"/> <property name="proxyTargetClass" value="true"/> </bean></pre> <p> <br />     又因些Service Bean都是单例Q效率应该不受媄响?br /><br />    <strong><span style="font-size: medium;">4.ȝ<br /></span></strong>    ҎAppfuse里面?个类Q我的Model层里只有VO作ؓU数据蝲体,ManagercL商业Ҏ。有q样太简单了Q但一个应用,要划成几个JSPQ一个ControllerQ一个ManagerQ一个VOQ对我来说已l够复杂,再要往上架墙叠屋,恕不奉陪Qv码在我的目范围里不需要?但有很多目是需要的Q神佑世人)<br /><br />    后记Q迫于世人的压力Q?a href="http://www%20.springside.org.cn/"><span style="color: #366900;">SpringSide</span></a>暂时q是把DAO和Service层分开了,但依然坚持不搞那么多接口?br />另外Q尽量利用IDEA的代码生成热键,为Managercȝ成delegate的DaocL法?/p> <p> </p> <p>相关文章Q?/p> <p><a class="quote_div" title="化Spring(1)--配置文g" href="202859" target="_self">化Spring(1)--配置文g</a></p> <p><a class="quote_div" title="化Spring(2)--Model? href="202860" target="_self">化Spring(2)--Model?/a></p> <p><a class="quote_div" title="化Spring(3)--Controller? href="202862" target="_self">化Spring(3)--Controller?/a></p> <p><a class="quote_div" title="化Spring(4)--View? href="202865" target="_self">化Spring(4)--View?/a></p> <p> </p> <br/> <span style="color:red;"> <a style="color:red;">本文的讨Z很精彩,览讨论>></a> </span> <br/><br/><br/> <span style="color:#E28822;">JavaEye推荐</span> <br/> <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软g研发工程?/span></a></li><li><a href='/adverts/92' target='_blank'>立刻报名Q免费获取门,参加SOA技术论?q州6?9?</a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐|站诚聘Java、PHP和C++工程?/span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线Q有Oracle最新文章,重要下蝲及知识库{精彩内容,Ƣ迎讉K?/span></a></li></ul> <br/><br/><br/> <br>文章来源:<a >http://tianshi0253.javaeye.com/blog/202860</a><img src ="http://www.aygfsteel.com/tianshi0253/aggbug/209792.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/tianshi0253/" target="_blank">姚文?/a> 2008-06-22 00:10 <a href="http://www.aygfsteel.com/tianshi0253/articles/209792.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]化Spring(3)--Controller?/title><link>http://www.aygfsteel.com/tianshi0253/articles/209791.html</link><dc:creator>姚文?/dc:creator><author>姚文?/author><pubDate>Sat, 21 Jun 2008 16:10:00 GMT</pubDate><guid>http://www.aygfsteel.com/tianshi0253/articles/209791.html</guid><wfw:comment>http://www.aygfsteel.com/tianshi0253/comments/209791.html</wfw:comment><comments>http://www.aygfsteel.com/tianshi0253/articles/209791.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/tianshi0253/comments/commentRss/209791.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/tianshi0253/services/trackbacks/209791.html</trackback:ping><description><![CDATA[ <br/> 作? <a >tianshi0253</a>  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/202862</a>  发表旉: 2008q?6?3? <br/><br/> 声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任! <br/><br/> <p>Struts与Webwork的扇子请跌本篇?br /><br />    MVC不就是把M、V、C分开么?臛_物朴素的做法是两个JSP一个负责ViewQ一个负责ControllerQ再加一个负责Model的Java BeanQ已l可以工作得很好Q那时候一切都很简单?br />    而现在ؓ了一些不是本质的功能Q冒么多非标准的Web框架Q实在让Z阵郁闗像Ruby On Rails那样捷开发,可用可不用,而且没有太多的限刉要学习的Q比?strong>Webwork</strong>q型q可以考虑。但像Struts那样用框架麻烦,或者像Tapestry那样有严重自闭們֐Q额上凿着"高手专用玩具"的,用在团队里就是不负责ȝ行ؓ了?/p> <div>    soQ?strong>我的MVCҎ是用Spring MVC的Controller接口Q写最普通的JavaBean作ؓController</strong>Q本质就和当q拿JSP作Controller差不多,但拥有了Spring IOC的特性?/div> <div>    之所以用q么消极的选择标准Q是因ؓ觉得q一代MVC框架重回RAD时代的标准还很远Q注定了只是一D늟暂的Q过渡的技术,不值得投资太多_֊和团队学习成本?/div> <div><br /><strong>1. 原理</strong> <div>     Spring MVC按植物分cd属于Martin Flower〈企业应用模式〉里的静态配|型Front ControlerQ用DispatchServlet截获所?.do的请求,按照xml文g的配|,调用对应的Command对象的handleRequest(request,response)函数Q同时进行依赖对象的注入?br />     我们的Controller层,是实现handleRequest(request,response)函数的普通JavaBean?/div> </div> <div><strong><br />2. 优势<br />    </strong> Spring MVC与struts相比的优?</div> <div><strong>     </strong>一是它的Controller有着从松到紧的类层次l构Q用户可以选择实现只有一个HandleRequest()函数的接口,也可以用它有很多回调函数的SimpleFormControllercR?/div> <div>     二是不需要Form BeanQ也不需要Tapestry那所谓面向对象的面对象Q对于深怕类膨胀Q改一个东西要动N个地方的人最适合不过?/div> <div>     三是不需要强XML配置文gQ宣告式~程是好的,但如果强制成框架Q什么都要在xml里面宣告Q写的时候繁琐,看的时候也要代码配|两边看才能明白比较麻烦了?/div> <div> </div> <div>     那Webwork?没有实战q,不过因ؓ对MVC框架所求就不多Q单用Spring MVC的Controller已经可以满需求,׃多搞一套Webwork来给团队讑֝Q还有给日后l护Qspring,ww2之间的版本升U添ȝ了。真有什么需要添加的QSpring MVC源代码量很少Q很Ҏ掌控和扩展?br />  </div> <div><strong>3.化简</strong></div> <div><strong>3.1. 直接implement ControllerQ实现handleRequest()函数</strong></div> <div>      首先Qsimple form controller非我所好,一炚w不simple。所以有时我会直接implement Controller接口。这个接口的唯一函数是供Front Controller调用的handleRequest(request,response)?br />      如果需要application对象Q比如想用application.getRealPath()Ӟpextends webApplicationObjectSupport?br /><br /><strong>3.2.每个Controler负责一l相关的action</strong></div> <div>       我是坚决支持一个Controler负责多个action的,一个Controler一个action像一个function一个类一h聊。所以我用最传统的方式,用URL参数如msg="insert"把一l相关action交给一个Controler控制。ROR与制作中的Groovy On Rails都是q种模式QSpring也有MultiActionController支持?br />       以上三者都是把URL参数直接反射为Controller的函敎ͼ?a ><span style="color: #366900;">Stripes</span></a>的设计可用annotation标注url action到响应函数的映射?/div> <div>       <strong>3.3.xml宣告式编E的取舍</strong> </div> <div>    我的取舍很简单,反正Spring没有M强制Q我只在可能需要不重新~译而改变某些东西的时候,才把东西攑֜xml里动态注入。jsp路径之类的就l统收回到controller里面定义.</div> <div> </div> <div><strong>3.4.Data Binder</strong></div> <div>       Data Binder是Controller的必有环节,对于Spring提供的DataBinderQ照理完全可用,唯一不爽是对象如果有内嵌对象Q如订单对象里面包含了Customer对象QSpring需要你先自行创ZCustomer对象q把它赋l了Order对象Q才可能实现order.customer.customer_noq样的绑定。我hQ又拿Jakarta BeanUtils出来自己做了一个Binder?br /><br />3.<strong>5.提取基类</strong></div> <div>      最后还是忍不住提取了一个基c,负责MultiAction和其他一些简便的Ҏ。Sprnig的MultiActionController做得太死Q规定所有函数的W?,2个参数必Lrequest和responseQ不懂动态的Q温柔的q行参数注入?br /><br />      <br />      l过化简再化Q已l是很简单一个Java Bean QQ谁都可以L上手Q即使某q某月技术的大潮把现在所有MVC框架都没了Q也不至于没得维护?/div> <div> <p>相关文章Q?/p> <p><a class="quote_div" title="化Spring(1)--配置文g" href="202859" target="_self">化Spring(1)--配置文g</a></p> <p><a class="quote_div" title="化Spring(2)--Model? href="202860" target="_self">化Spring(2)--Model?/a></p> <p><a class="quote_div" title="化Spring(3)--Controller? href="202862" target="_self">化Spring(3)--Controller?/a></p> <p><a class="quote_div" title="化Spring(4)--View? href="202865" target="_self">化Spring(4)--View?/a></p> <p> </p> </div> <br/> <span style="color:red;"> <a style="color:red;">本文的讨Z很精彩,览讨论>></a> </span> <br/><br/><br/> <span style="color:#E28822;">JavaEye推荐</span> <br/> <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线Q有Oracle最新文章,重要下蝲及知识库{精彩内容,Ƣ迎讉K?/span></a></li><li><a href='/adverts/92' target='_blank'>立刻报名Q免费获取门,参加SOA技术论?q州6?9?</a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软g研发工程?/span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐|站诚聘Java、PHP和C++工程?/span></a></li></ul> <br/><br/><br/> <br>文章来源:<a >http://tianshi0253.javaeye.com/blog/202862</a><img src ="http://www.aygfsteel.com/tianshi0253/aggbug/209791.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/tianshi0253/" target="_blank">姚文?/a> 2008-06-22 00:10 <a href="http://www.aygfsteel.com/tianshi0253/articles/209791.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]化Spring(4)--View?/title><link>http://www.aygfsteel.com/tianshi0253/articles/209790.html</link><dc:creator>姚文?/dc:creator><author>姚文?/author><pubDate>Sat, 21 Jun 2008 16:10:00 GMT</pubDate><guid>http://www.aygfsteel.com/tianshi0253/articles/209790.html</guid><wfw:comment>http://www.aygfsteel.com/tianshi0253/comments/209790.html</wfw:comment><comments>http://www.aygfsteel.com/tianshi0253/articles/209790.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/tianshi0253/comments/commentRss/209790.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/tianshi0253/services/trackbacks/209790.html</trackback:ping><description><![CDATA[ <br/> 作? <a >tianshi0253</a>  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/202865</a>  发表旉: 2008q?6?3? <br/><br/> 声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任! <br/><br/> <p>人生像个舞台Q请良家女d?br />    同样的,Freemarker和Velocity爱好者请跌本篇。与弃用webwork而单用Spring MVC Controller接口的理׃P<a ><span style="color: #366900;">Freemarker</span></a>本来是一样好东西Q还跨界支持jsp 的taglibQ而且得到了WebWork的全力支持,但ؓ了它的非标准化,用户数量与IDE的缺乏,在View层我们还是用了<strong>保守但hZ用,IDE友好的JSP2.0 配合JSTL?br /><br />    </strong>对于B/Sl构的企业应用Y件来_基本的页面不外两U,一U是填Form的,一U是DataGrid 数据列表理的,再配合一些css, js, ajax的效果,是View层要x的东西了?br /><br /><strong>1. JSP 2.0的EL代替<c:out></strong><br />JSP2.0可以直接把EL写在html部分Q而不必动?lt;c:out>节点后,老实_JSP2.0+JSTL辑ֈ的页面效果,已不比Velocity相差多少了?</p> <pre name="code" class="xml"><p>{goods.name}</p> 代替 <p><c:out value="{goods.name}"/></p></pre> <p> </p> <p>(除了EL里面不能调用goods的函敎ͼsun那帮老顽固始l坚持JSTL只能用于数据昄Q不能进行数据操作,所以不能调用bean的get/set外的Ҏ)<br /><br /> <strong>2. 最懒的form 数据l定</strong> </p> <p>    Spring得可怜的几个tag基本上是鸡肋Q完全可以不要?而Spring开发中的那些Simple Form tag又还没有发布。Spring的Tag主要用来把VO的值绑到input框上。但是,和Struts一P需要逐个Input框绑定,而且语法极度冗长Q遇到select框还要自p行处?....典型的Spring Sample面让h一阵头? </p> <p>    ?a ><span style="color: #366900;">jodd的form tag</span></a>l了我们懒h一个懒得多的方法,只要?lt;form>两头?lt;jodd:form bean="myVO"></jodd:form>包住Q里面的所有input框,select框,checkBox...l统自动被绑定了Q这么简单的事情Q真不明白struts,springZ么不用,Z不必要的灉|性么?</p> <pre name="code" class="xml"><form> <jodd:form bean="human"> <input type="text" name="name"> <input type="radiobox" name="sex" value="man"> <select name="age"> <option value="20">20</option> <option value="30">30</option> </select> </jodd:form> </form> </pre> <p> </p> <p> </p> <p>不过Qjodd有个致命q是不能绑定内嵌对象的倹{比如Order(订单)对象里有个Customer(֮)对象Qjodd׃能像 struts,spring一L如下语法l定:</p> <p> </p> <pre name="code" class="xml"><input name="customer.customerNo"></pre> <p> </p> <p>q是因ؓ它的beanUtils比Jakata Common弱,用了一个错误的思\的缘故?动用beanUtils修改一下就可以了,<a href="../../../Files/calvin/form_tag.rar"><span style="color: #366900;">修改后的源码可以在这里下?/span></a>?</p> <p><strong>3. DataGrid数据列表</strong></p> <p>DisplayTag和ValueList都属于这UŞ式的Tag Library。但最q出现的<a ><span style="color: #366900;">Extreme Table</span></a>是真正的killerQ他本n功能强大不说Q而且从一开始就想着如何让别行扩展重载,比如Extend Attributes机制是DisplayTagq样的让千h一面者不会预留?br /><br /><br /><strong>4.css, javascript, ajax</strong><br />天下UhQ没有什么特别想讲想推荐的,p谁吧?a ><span style="color: #366900;">Buffalo</span></a>, DWR, Scriptaculous, Prototype, AjaxTags, AjaxAnywhere, Rico, Dojo, JSON-RPCQ看着名字头痛?/p> <p> </p> <p>相关文章Q?/p> <p><a class="quote_div" title="化Spring(1)--配置文g" href="202859" target="_self">化Spring(1)--配置文g</a></p> <p><a class="quote_div" title="化Spring(2)--Model? href="202860" target="_self">化Spring(2)--Model?/a></p> <p><a class="quote_div" title="化Spring(3)--Controller? href="202862" target="_self">化Spring(3)--Controller?/a></p> <p><a class="quote_div" title="化Spring(4)--View? href="202865" target="_self">化Spring(4)--View?/a></p> <p> </p> <br/> <span style="color:red;"> <a style="color:red;">本文的讨Z很精彩,览讨论>></a> </span> <br/><br/><br/> <span style="color:#E28822;">JavaEye推荐</span> <br/> <ul class='adverts'><li><a href='/adverts/92' target='_blank'>立刻报名Q免费获取门,参加SOA技术论?q州6?9?</a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐|站诚聘Java、PHP和C++工程?/span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软g研发工程?/span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线Q有Oracle最新文章,重要下蝲及知识库{精彩内容,Ƣ迎讉K?/span></a></li></ul> <br/><br/><br/> <br>文章来源:<a >http://tianshi0253.javaeye.com/blog/202865</a><img src ="http://www.aygfsteel.com/tianshi0253/aggbug/209790.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/tianshi0253/" target="_blank">姚文?/a> 2008-06-22 00:10 <a href="http://www.aygfsteel.com/tianshi0253/articles/209790.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]用JAVAcd现MD5加密-----MakeMD5.javahttp://www.aygfsteel.com/tianshi0253/articles/209789.html姚文?/dc:creator>姚文?/author>Sat, 21 Jun 2008 16:10:00 GMThttp://www.aygfsteel.com/tianshi0253/articles/209789.htmlhttp://www.aygfsteel.com/tianshi0253/comments/209789.htmlhttp://www.aygfsteel.com/tianshi0253/articles/209789.html#Feedback0http://www.aygfsteel.com/tianshi0253/comments/commentRss/209789.htmlhttp://www.aygfsteel.com/tianshi0253/services/trackbacks/209789.html 作? tianshi0253  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/202896  发表旉: 2008q?6?3?

声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任!

package com.jqqd.ywc;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

import sun.misc.BASE64Encoder;

public class MakeMD5 {

	public String EncoderByMd5(String str) throws NoSuchAlgorithmException,
			UnsupportedEncodingException {
		// 定计算Ҏ
		MessageDigest md5 = MessageDigest.getInstance("MD5");
		BASE64Encoder base64en = new BASE64Encoder();
		// 加密后的字符?
		String newstr = base64en.encode(md5.digest(str.getBytes("GB2312")));
		return newstr;
	}

	/** */
	/**
	 * 判断用户密码是否正确
	 * 
	 * @param newpasswd
	 *            用户输入的密?
	 * @param oldpasswd
	 *            数据库中存储的密码-Q用户密码的摘要
	 * @return
	 * @throws NoSuchAlgorithmException
	 * @throws UnsupportedEncodingException
	 */
	public boolean checkpassword(String newpasswd, String oldpasswd)
			throws NoSuchAlgorithmException, UnsupportedEncodingException {
		if (EncoderByMd5(newpasswd).equals(oldpasswd))
			return true;
		else
			return false;
	}

	public static void main(String[] args) throws Exception {
		MakeMD5 make = new MakeMD5();
		System.out.println(make.EncoderByMd5("姚文?));
	}

}

 

 

增加一个功能,把结果写入一个文Ӟ

package com.jqqd.ywc;

import java.io.FileWriter;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

import sun.misc.BASE64Encoder;

public class MakeMD5 {

	public String EncoderByMd5(String str) throws NoSuchAlgorithmException,
			UnsupportedEncodingException {
		// 定计算Ҏ
		MessageDigest md5 = MessageDigest.getInstance("MD5");
		BASE64Encoder base64en = new BASE64Encoder();
		// 加密后的字符?
		String newstr = base64en.encode(md5.digest(str.getBytes("GB2312")));
		return newstr;
	}

	public String writeToFileResult(String newstr) {
		try {
			FileWriter fw = new FileWriter("D:/tt.xx");
			fw.append(newstr);
			fw.flush();
			fw.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return null;
	}

	/** */
	/**
	 * 判断用户密码是否正确
	 * 
	 * @param newpasswd
	 *            用户输入的密?
	 * @param oldpasswd
	 *            数据库中存储的密码-Q用户密码的摘要
	 * @return
	 * @throws NoSuchAlgorithmException
	 * @throws UnsupportedEncodingException
	 */
	public boolean checkpassword(String newpasswd, String oldpasswd)
			throws NoSuchAlgorithmException, UnsupportedEncodingException {
		if (EncoderByMd5(newpasswd).equals(oldpasswd))
			return true;
		else
			return false;
	}

	public static void main(String[] args) throws Exception {
		MakeMD5 make = new MakeMD5();
		// System.out.println("setup 1");
		String result = make.EncoderByMd5("姚文?);
		System.out.println(result);
		// System.out.println("setup 2");
		make.writeToFileResult(result);
		// System.out.println("setup 3");
	}

}

 


本文的讨Z很精彩,览讨论>>


JavaEye推荐




文章来源:http://tianshi0253.javaeye.com/blog/202896

]]>
[导入]java中文件操作大全(转)http://www.aygfsteel.com/tianshi0253/articles/209788.html姚文?/dc:creator>姚文?/author>Sat, 21 Jun 2008 16:10:00 GMThttp://www.aygfsteel.com/tianshi0253/articles/209788.htmlhttp://www.aygfsteel.com/tianshi0253/comments/209788.htmlhttp://www.aygfsteel.com/tianshi0253/articles/209788.html#Feedback0http://www.aygfsteel.com/tianshi0253/comments/commentRss/209788.htmlhttp://www.aygfsteel.com/tianshi0253/services/trackbacks/209788.html 作? tianshi0253  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/202900  发表旉: 2008q?6?3?

声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任!

本文为本人在工作学习中的ȝQ每个方法都l过试Q记在博客上一斚w是ؓ了自己日后工作方便,另一斚w是ؓ了给大家提供方便Q节U时间?/p>

 一.获得控制台用戯入的信息

/** *//**获得控制台用戯入的信息
     * @return
     * @throws IOException
     */
    public String getInputMessage() throws IOException{
        System.out.println("误入您的命令∶");
        byte buffer[]=new byte[1024];
        int count=System.in.read(buffer);
        char[] ch=new char[count-2];//最后两位ؓl束W,删去不要
        for(int i=0;i<count-2;i++)
            ch[i]=(char)buffer[i];
        String str=new String(ch);
        return str;
    }

 

可以q回用户输入的信息,不之处在于不支持中文输入,有待q一步改q?/p>

?复制文g

1.以文件流的方式复制文?/p>

/** *//**以文件流的方式复制文?
     * @param src 文g源目?
     * @param dest 文g目的目录
     * @throws IOException  
     */
    public void copyFile(String src,String dest) throws IOException{
        FileInputStream in=new FileInputStream(src);
        File file=new File(dest);
        if(!file.exists())
            file.createNewFile();
        FileOutputStream out=new FileOutputStream(file);
        int c;
        byte buffer[]=new byte[1024];
        while((c=in.read(buffer))!=-1){
            for(int i=0;i<c;i++)
                out.write(buffer[i]);        
        }
        in.close();
        out.close();
    }

 

该方法经q测试,支持中文处理Qƈ且可以复制多U类型,比如txtQxmlQjpgQdoc{多U格?/p>

?写文?/p>

1.利用PrintStream写文?/p>

/** *//**
     * 文g输出CZ
     */
    public void PrintStreamDemo(){
        try {
            FileOutputStream out=new FileOutputStream("D:/test.txt");
            PrintStream p=new PrintStream(out);
            for(int i=0;i<10;i++)
                p.println("This is "+i+" line");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }

 

2.利用StringBuffer写文?/p>

public void StringBufferDemo() throws IOException{
        File file=new File("/root/sms.log");
        if(!file.exists())
            file.createNewFile();
        FileOutputStream out=new FileOutputStream(file,true);        
        for(int i=0;i<10000;i++){
            StringBuffer sb=new StringBuffer();
            sb.append("q是W?+i+"?前面介绍的各U方法都不关?Z么L奇怪的问题 ");
            out.write(sb.toString().getBytes("utf-8"));
        }        
        out.close();
    }

 

该方法可以设定用何U编码,有效解决中文问题?/p>

?文g重命?/p>

 

 /** *//**文g重命?
     * @param path 文g目录
     * @param oldname  原来的文件名
     * @param newname 新文件名
     */
    public void renameFile(String path,String oldname,String newname){
        if(!oldname.equals(newname)){//新的文g名和以前文g名不同时,才有必要q行重命?
            File oldfile=new File(path+"/"+oldname);
            File newfile=new File(path+"/"+newname);
            if(newfile.exists())//若在该目录下已经有一个文件和新文件名相同Q则不允讔R命名
                System.out.println(newname+"已经存在Q?);
            else{
                oldfile.renameTo(newfile);
            } 
        }         
    }

    

?转移文g目录
 

转移文g目录不等同于复制文gQ复制文件是复制后两个目录都存在该文Ӟ而{UL件目录则是{UdQ只有新目录中存在该文g?

  

  /** *//**转移文g目录
     * @param filename 文g?
     * @param oldpath 旧目?
     * @param newpath 新目?
     * @param cover 若新目录下存在和转移文gh相同文g名的文gӞ是否覆盖新目录下文gQcover=true会覆盖原文Ӟ否则不操?
     */
    public void changeDirectory(String filename,String oldpath,String newpath,boolean cover){
        if(!oldpath.equals(newpath)){
            File oldfile=new File(oldpath+"/"+filename);
            File newfile=new File(newpath+"/"+filename);
            if(newfile.exists()){//若在待{Uȝ录下Q已l存在待转移文g
                if(cover)//覆盖
                    oldfile.renameTo(newfile);
                else
                    System.out.println("在新目录下已l存在:"+filename);
            }
            else{
                oldfile.renameTo(newfile);
            }
        }       
    }

  

?L?/p>

1.利用FileInputStreamd文g


   

 /** *//**L?
     * @param path
     * @return
     * @throws IOException
     */
    public String FileInputStreamDemo(String path) throws IOException{
        File file=new File(path);
        if(!file.exists()||file.isDirectory())
            throw new FileNotFoundException();
        FileInputStream fis=new FileInputStream(file);
        byte[] buf = new byte[1024];
        StringBuffer sb=new StringBuffer();
        while((fis.read(buf))!=-1){
            sb.append(new String(buf));    
            buf=new byte[1024];//重新生成Q避免和上次d的数据重?
        }
        return sb.toString();
    }

 


2.利用BufferedReaderd

在IO操作Q利用BufferedReader和BufferedWriter效率会更高一?

  

  /** *//**L?
     * @param path
     * @return
     * @throws IOException
     */
    public String BufferedReaderDemo(String path) throws IOException{
        File file=new File(path);
        if(!file.exists()||file.isDirectory())
            throw new FileNotFoundException();
        BufferedReader br=new BufferedReader(new FileReader(file));
        String temp=null;
        StringBuffer sb=new StringBuffer();
        temp=br.readLine();
        while(temp!=null){
            sb.append(temp+" ");
            temp=br.readLine();
        }
        return sb.toString();
    }

 
3.利用dom4jdxml文g

  

  /** *//**从目录中dxml文g
     * @param path 文g目录
     * @return
     * @throws DocumentException
     * @throws IOException
     */
    public Document readXml(String path) throws DocumentException, IOException{
        File file=new File(path);
        BufferedReader bufferedreader = new BufferedReader(new FileReader(file));
        SAXReader saxreader = new SAXReader();
        Document document = (Document)saxreader.read(bufferedreader);
        bufferedreader.close();
        return document;
    }

  

?创徏文g(文g?

1.创徏文g?nbsp;  

  /** *//**创徏文g?
      * @param path  目录
    */
    public void createDir(String path){
        File dir=new File(path);
        if(!dir.exists())
            dir.mkdir();
    }

   

2.创徏新文?

/** *//**创徏新文?
     * @param path 目录
     * @param filename 文g?
     * @throws IOException
     */
    public void createFile(String path,String filename) throws IOException{
        File file=new File(path+"/"+filename);
        if(!file.exists())
            file.createNewFile();
    }

 

?删除文g(目录)

1.删除文g    

/** *//**删除文g
     * @param path 目录
     * @param filename 文g?
     */
    public void delFile(String path,String filename){
        File file=new File(path+"/"+filename);
        if(file.exists()&&file.isFile())
            file.delete();
    }

 

2.删除目录
要利用Filecȝdelete()Ҏ删除目录Ӟ必须保证该目录下没有文g或者子目录Q否则删除失败,因此在实际应用中Q我们要删除目录Q必d用递归删除该目录下的所有子目录和文Ӟ然后再删除该目录?nbsp;

/** *//**递归删除文g?
     * @param path
     */
    public void delDir(String path){
        File dir=new File(path);
        if(dir.exists()){
            File[] tmp=dir.listFiles();
            for(int i=0;i<tmp.length;i++){
                if(tmp[i].isDirectory()){
                    delDir(path+"/"+tmp[i].getName());
                }
                else{
                    tmp[i].delete();
                }
            }
            dir.delete();
        }
    }

 


本文的讨Z很精彩,览讨论>>


JavaEye推荐




文章来源:http://tianshi0253.javaeye.com/blog/202900

]]>
[导入]从命令行接收一个数Qƈ其转化Z文金额的大写方式Q{Q?/title><link>http://www.aygfsteel.com/tianshi0253/articles/209787.html</link><dc:creator>姚文?/dc:creator><author>姚文?/author><pubDate>Sat, 21 Jun 2008 16:10:00 GMT</pubDate><guid>http://www.aygfsteel.com/tianshi0253/articles/209787.html</guid><wfw:comment>http://www.aygfsteel.com/tianshi0253/comments/209787.html</wfw:comment><comments>http://www.aygfsteel.com/tianshi0253/articles/209787.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/tianshi0253/comments/commentRss/209787.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/tianshi0253/services/trackbacks/209787.html</trackback:ping><description><![CDATA[ <br/> 作? <a >tianshi0253</a>  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/202928</a>  发表旉: 2008q?6?3? <br/><br/> 声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任! <br/><br/> <pre name="code" class="java">package com.jqqd.ywc; /** * E序目的Q?从命令行接收一个数Qƈ其转化Z文金额的大写方式 例如 123.45 --> 壹䘪贰拾叁元肆角伍分 * * @author LovinChan * * 看到|上有很多这L例子E序Q不q觉得很不满意。有些程序我从命名上p?实在是不W合规范Q程序里面的法没有让h明白得很清楚的注释,M去觉得有 * 炚w度,可读性不强。而且很多E序q存在不bugQ随便一就出来了?所以本是决定重新写一下这个程序,q且量做到消除不必要的bug。这个程 * 序我没有用什么很_֦的算法,不过用了一些Javacd中的c,像是正则表达式之c? * 的东ѝ由于本人对法不怎么在行Q在做{换操作的时候用的是很笨的方法。望各位 大虾hQ呵c? * * E序的注释我量写得详细一点,如果觉得q个E序哪里有问题或者是哪里有改q的 地方Ƣ迎随时跟我交流?我的msn:egg.chenlw@gmail.com * QQ:543669516(注上Z么加我就可以? 我的blog:http://hi.baidu.com/egg_chen Ƣ迎交流 */ public class Trans2RMB { /** * 试E序的可行? * * @param args */ public static void main(String[] args) { System.out.println("--------数字{换成中文金额的大写Ş?-----------\n"); Trans2RMB t2r = new Trans2RMB(); String s = t2r.cleanZero(t2r.splitNum(t2r.roundString(t2r.getNum()))); // 如果转换q后是一个空Ԍ则不输出屏幕 if (!"".equals(s)) { System.out.println("转换成中文后为:" + s); ; } System.out.println("\n---------------------------------------------"); } /** * 从命令行接收一个数Q在其中调用 checkNum() Ҏ对其q行 验证Qƈq回相应的? * * @return 如果输入合法Q返回输入的q个? */ private String getNum() { String s = null; System.out.println("误入一个数字(_到小数点后两位)Q?); // 从命令行输入q个点? java.util.Scanner scanner = new java.util.Scanner(System.in); s = scanner.next(); // 判断用户输入是否合法 // 若合法,q回q个|若非法返?"0" if (this.checkNum(s)) { return s; } else { return ""; } } /** * 判断用户输入的数据是否合法,用户只能输入大于零的数字Q不能输入其它字W? * * @param s * String * @return 如果用户输入数据合法Q返?trueQ否则返?false */ private boolean checkNum(String s) { // 如果用户输入的数里有非数字字W,则视为非法数据,q回 false try { float f = Float.valueOf(s); // 如果q个数小于零则视为非法数据,q回 false if (f < 0) { System.out.println("非法数据Q请查!"); return false; } else { return true; } } catch (NumberFormatException e) { System.out.println("非法数据Q请查!"); return false; } } /** * 把用戯入的C数点ؓ界分割开来,q调?numFormat() Ҏ q行相应的中文金额大写Ş式的转换 注:传入的这个数应该是经q? * roundString() Ҏq行了四舍五入操作的 * * @param s * String * @return 转换好的中文金额大写形式的字W串 */ private String splitNum(String s) { // 如果传入的是IZ则l返回空? if ("".equals(s)) { return ""; } // 以小数点为界分割q个字符? int index = s.indexOf("."); // 截取q{换这个数的整数部? String intOnly = s.substring(0, index); String part1 = this.numFormat(1, intOnly); // 截取q{换这个数的小数部? String smallOnly = s.substring(index + 1); String part2 = this.numFormat(2, smallOnly); // 把{换好了的整数部分和小数部分重新拼凑一个新的字W串 String newS = part1 + part2; return newS; } /** * 对传入的数进行四舍五入操? * * @param s * String 从命令行输入的那个数 * @return 四舍五入后的新? */ private String roundString(String s) { // 如果传入的是IZ则l返回空? if ("".equals(s)) { return ""; } // 这个数转换?double cdQƈ对其q行四舍五入操作 double d = Double.parseDouble(s); // 此操作作用在数点后两位? d = (d * 100 + 0.5) / 100; // ?d q行格式? s = new java.text.DecimalFormat("##0.000").format(d); // 以小数点为界分割q个字符? int index = s.indexOf("."); // q个数的整数部分 String intOnly = s.substring(0, index); // 规定数值的最大长度只能到万亿单位Q否则返?"0" if (intOnly.length() > 13) { System.out.println("输入数据q大Q(整数部分最?3位!Q?); return ""; } // q个数的数部分 String smallOnly = s.substring(index + 1); // 如果数部分大于两位Q只截取数点后两位 if (smallOnly.length() > 2) { String roundSmall = smallOnly.substring(0, 2); // 把整数部分和新截取的数部分重新拼凑q个字符? s = intOnly + "." + roundSmall; } return s; } /** * 把传入的数{换ؓ中文金额大写形式 * * @param flag * int 标志位,1 表示转换整数部分Q? 表示转换数部分 * @param s * String 要{换的字符? * @return 转换好的带单位的中文金额大写形式 */ private String numFormat(int flag, String s) { int sLength = s.length(); // 货币大写形式 String bigLetter[] = { "?, "?, "?, "?, "?, "?, "?, "?, "?, "? }; // 货币单位 String unit[] = { "?, "?, "?, "?, "?, // 拾万位到仟万? "?, "?, "?, // 亿位C亿位 "?, "?, "?, "?, "? }; String small[] = { "?, "? }; // 用来存放转换后的新字W串 String newS = ""; // 逐位替换Z文大写Ş? for (int i = 0; i < sLength; i++) { if (flag == 1) { // 转换整数部分Z文大写Ş式(带单位) newS = newS + bigLetter[s.charAt(i) - 48] + unit[sLength - i - 1]; } else if (flag == 2) { // 转换数部分Q带单位Q? newS = newS + bigLetter[s.charAt(i) - 48] + small[sLength - i - 1]; } } return newS; } /** * 把已l{换好的中文金额大写Ş式加以改q,清理q个?W串里面多余的零Q让q个字符串变得更加可?注:传入的这个数应该是经q?splitNum() * Ҏq行处理Q这个字 W串应该已经是用中文金额大写形式表示? * * @param s * String 已经转换好的字符? * @return 改进后的字符? */ private String cleanZero(String s) { // 如果传入的是IZ则l返回空? if ("".equals(s)) { return ""; } // 如果用户开始输入了很多 0 L字符串前面多余的'?Q其看上去更符合习? while (s.charAt(0) == '?) { // 字W串中的 "? 和它对应的单位去? s = s.substring(2); // 如果用户当初输入的时候只输入?0Q则只返回一?"? if (s.length() == 0) { return "?; } } // 字符串中存在多个'?在一L时候只d一??Qƈ省略多余的单? /* ׃本h对算法的研究太菜了,只能?个正则表辑ּ去{换了Q各位大虑ֈ介意?.. */ String regex1[] = { "零仟", "零䘪", "零拾" }; String regex2[] = { "零亿", "零万", "零元" }; String regex3[] = { "?, "?, "? }; String regex4[] = { "零角", "零分" }; // W一轮{换把 "零仟", 零䘪","零拾"{字W串替换成一?? for (int i = 0; i < 3; i++) { s = s.replaceAll(regex1[i], "?); } // W二轮{换考虑 "零亿","零万","零元"{情? // "?,"?,"?q些单位有些情况是不能省的,需要保留下? for (int i = 0; i < 3; i++) { // 当第一轮{换过后有可能有很多个零叠在一? // 要把很多个重复的零变成一个零 s = s.replaceAll("雉?, "?); s = s.replaceAll("雉", "?); s = s.replaceAll(regex2[i], regex3[i]); } // W三轮{换把"零角","零分"字符串省? for (int i = 0; i < 2; i++) { s = s.replaceAll(regex4[i], ""); } // ????之间全部??的时候,忽略"亿万"单位Q只保留一?? s = s.replaceAll("亿万", "?); return s; } } </pre> <p> </p> <br/> <span style="color:red;"> <a style="color:red;">本文的讨Z很精彩,览讨论>></a> </span> <br/><br/><br/> <span style="color:#E28822;">JavaEye推荐</span> <br/> <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线Q有Oracle最新文章,重要下蝲及知识库{精彩内容,Ƣ迎讉K?/span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软g研发工程?/span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐|站诚聘Java、PHP和C++工程?/span></a></li><li><a href='/adverts/92' target='_blank'>立刻报名Q免费获取门,参加SOA技术论?q州6?9?</a></li></ul> <br/><br/><br/> <br>文章来源:<a >http://tianshi0253.javaeye.com/blog/202928</a><img src ="http://www.aygfsteel.com/tianshi0253/aggbug/209787.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/tianshi0253/" target="_blank">姚文?/a> 2008-06-22 00:10 <a href="http://www.aygfsteel.com/tianshi0253/articles/209787.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]讄ul中li元素居中寚whttp://www.aygfsteel.com/tianshi0253/archive/2008/06/20/209742.html姚文?/dc:creator>姚文?/author>Fri, 20 Jun 2008 10:31:00 GMThttp://www.aygfsteel.com/tianshi0253/archive/2008/06/20/209742.htmlhttp://www.aygfsteel.com/tianshi0253/comments/209742.htmlhttp://www.aygfsteel.com/tianshi0253/archive/2008/06/20/209742.html#Feedback0http://www.aygfsteel.com/tianshi0253/comments/commentRss/209742.htmlhttp://www.aygfsteel.com/tianshi0253/services/trackbacks/209742.html 作? tianshi0253  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/206435  发表旉: 2008q?6?0?

声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任!

ul中li元素的宽度设|ؓ其所在容器的宽度卛_?/p>
本文的讨Z很精彩,览讨论>>


JavaEye推荐





文章来源:http://tianshi0253.javaeye.com/blog/206435

]]>
[导入]讄ul中li元素居中寚whttp://www.aygfsteel.com/tianshi0253/articles/209762.html姚文?/dc:creator>姚文?/author>Fri, 20 Jun 2008 10:31:00 GMThttp://www.aygfsteel.com/tianshi0253/articles/209762.htmlhttp://www.aygfsteel.com/tianshi0253/comments/209762.htmlhttp://www.aygfsteel.com/tianshi0253/articles/209762.html#Feedback0http://www.aygfsteel.com/tianshi0253/comments/commentRss/209762.htmlhttp://www.aygfsteel.com/tianshi0253/services/trackbacks/209762.html 作? tianshi0253  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/206435  发表旉: 2008q?6?0?

声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任!

ul中li元素的宽度设|ؓ其所在容器的宽度卛_?/p>
本文的讨Z很精彩,览讨论>>


JavaEye推荐





文章来源:http://tianshi0253.javaeye.com/blog/206435

]]>
[导入]囄切换技术、选项卡技术应?/title><link>http://www.aygfsteel.com/tianshi0253/archive/2008/06/19/209743.html</link><dc:creator>姚文?/dc:creator><author>姚文?/author><pubDate>Thu, 19 Jun 2008 01:56:00 GMT</pubDate><guid>http://www.aygfsteel.com/tianshi0253/archive/2008/06/19/209743.html</guid><wfw:comment>http://www.aygfsteel.com/tianshi0253/comments/209743.html</wfw:comment><comments>http://www.aygfsteel.com/tianshi0253/archive/2008/06/19/209743.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/tianshi0253/comments/commentRss/209743.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/tianshi0253/services/trackbacks/209743.html</trackback:ping><description><![CDATA[ <br/> 作? <a >tianshi0253</a>  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/205636</a>  发表旉: 2008q?6?9? <br/><br/> 声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任! <br/><br/> <p>一般情况下q用<dl></dl>标签</p> <p>囄切换Q?/p> <pre name="code" class="html"><dl> <dt><a href="#1">1</a><a href="#2">2</a><a href="#3">3</a><a href="#4">4</a></dt> <dd><img src="image/01.jpg" alt="" title="" id="1"/></dd> <dd><img src="image/02.jpg" alt="" title="" id="2"/></dd> <dd><img src="image/03.jpg" alt="" title="" id="3"/></dd> <dd><img src="image/04.jpg" alt="" title="" id="4"/></dd> </dl> </pre> <p> </p> <p> </p> <p>选项卡:</p> <pre name="code" class="html"><dl> <dt><a href="#1">1</a><a href="#2">2</a><a href="#3">3</a><a href="#4">4</a></dt> <dd> <ul id="1"> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> </ul> <ul id="2"> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> </ul> <ul id="3"> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> </ul> <ul id="4"> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> </ul> <ul id="5"> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> </ul></dd> </dl> </pre> <p> </p> <br/> <span style="color:red;"> <a style="color:red;">本文的讨Z很精彩,览讨论>></a> </span> <br/><br/><br/> <span style="color:#E28822;">JavaEye推荐</span> <br/> <ul class='adverts'><li><a href='/adverts/92' target='_blank'>立刻报名Q免费获取门,参加SOA技术论?q州6?9?</a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐|站诚聘Java、PHP和C++工程?/span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软g研发工程?/span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线Q有Oracle最新文章,重要下蝲及知识库{精彩内容,Ƣ迎讉K?/span></a></li></ul> <br/><br/><br/> <br>文章来源:<a >http://tianshi0253.javaeye.com/blog/205636</a><img src ="http://www.aygfsteel.com/tianshi0253/aggbug/209743.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/tianshi0253/" target="_blank">姚文?/a> 2008-06-19 09:56 <a href="http://www.aygfsteel.com/tianshi0253/archive/2008/06/19/209743.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]囄切换技术、选项卡技术应?/title><link>http://www.aygfsteel.com/tianshi0253/articles/209763.html</link><dc:creator>姚文?/dc:creator><author>姚文?/author><pubDate>Thu, 19 Jun 2008 01:56:00 GMT</pubDate><guid>http://www.aygfsteel.com/tianshi0253/articles/209763.html</guid><wfw:comment>http://www.aygfsteel.com/tianshi0253/comments/209763.html</wfw:comment><comments>http://www.aygfsteel.com/tianshi0253/articles/209763.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/tianshi0253/comments/commentRss/209763.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/tianshi0253/services/trackbacks/209763.html</trackback:ping><description><![CDATA[ <br/> 作? <a >tianshi0253</a>  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/205636</a>  发表旉: 2008q?6?9? <br/><br/> 声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任! <br/><br/> <p>一般情况下q用<dl></dl>标签</p> <p>囄切换Q?/p> <pre name="code" class="html"><dl> <dt><a href="#1">1</a><a href="#2">2</a><a href="#3">3</a><a href="#4">4</a></dt> <dd><img src="image/01.jpg" alt="" title="" id="1"/></dd> <dd><img src="image/02.jpg" alt="" title="" id="2"/></dd> <dd><img src="image/03.jpg" alt="" title="" id="3"/></dd> <dd><img src="image/04.jpg" alt="" title="" id="4"/></dd> </dl> </pre> <p> </p> <p> </p> <p>选项卡:</p> <pre name="code" class="html"><dl> <dt><a href="#1">1</a><a href="#2">2</a><a href="#3">3</a><a href="#4">4</a></dt> <dd> <ul id="1"> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> </ul> <ul id="2"> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> </ul> <ul id="3"> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> </ul> <ul id="4"> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> </ul> <ul id="5"> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> <li>新闻标题</li> </ul></dd> </dl> </pre> <p> </p> <br/> <span style="color:red;"> <a style="color:red;">本文的讨Z很精彩,览讨论>></a> </span> <br/><br/><br/> <span style="color:#E28822;">JavaEye推荐</span> <br/> <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软g研发工程?/span></a></li><li><a href='/adverts/92' target='_blank'>立刻报名Q免费获取门,参加SOA技术论?q州6?9?</a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线Q有Oracle最新文章,重要下蝲及知识库{精彩内容,Ƣ迎讉K?/span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐|站诚聘Java、PHP和C++工程?/span></a></li></ul> <br/><br/><br/> <br>文章来源:<a >http://tianshi0253.javaeye.com/blog/205636</a><img src ="http://www.aygfsteel.com/tianshi0253/aggbug/209763.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/tianshi0253/" target="_blank">姚文?/a> 2008-06-19 09:56 <a href="http://www.aygfsteel.com/tianshi0253/articles/209763.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]关于IE/非IE下元素透明的属性的hackhttp://www.aygfsteel.com/tianshi0253/archive/2008/06/19/209744.html姚文?/dc:creator>姚文?/author>Thu, 19 Jun 2008 01:30:00 GMThttp://www.aygfsteel.com/tianshi0253/archive/2008/06/19/209744.htmlhttp://www.aygfsteel.com/tianshi0253/comments/209744.htmlhttp://www.aygfsteel.com/tianshi0253/archive/2008/06/19/209744.html#Feedback0http://www.aygfsteel.com/tianshi0253/comments/commentRss/209744.htmlhttp://www.aygfsteel.com/tianshi0253/services/trackbacks/209744.html 作? tianshi0253  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/205619  发表旉: 2008q?6?9?

声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任!

IEQ?filter:alpha(opacity=40);

//0为全透明Q?00Z透明

非IE:opacity:.4;

//0为全透明Q?0Z透明?/p>
本文的讨Z很精彩,览讨论>>


JavaEye推荐





文章来源:http://tianshi0253.javaeye.com/blog/205619

]]>
[导入]关于IE/非IE下元素透明的属性的hackhttp://www.aygfsteel.com/tianshi0253/articles/209764.html姚文?/dc:creator>姚文?/author>Thu, 19 Jun 2008 01:30:00 GMThttp://www.aygfsteel.com/tianshi0253/articles/209764.htmlhttp://www.aygfsteel.com/tianshi0253/comments/209764.htmlhttp://www.aygfsteel.com/tianshi0253/articles/209764.html#Feedback0http://www.aygfsteel.com/tianshi0253/comments/commentRss/209764.htmlhttp://www.aygfsteel.com/tianshi0253/services/trackbacks/209764.html 作? tianshi0253  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/205619  发表旉: 2008q?6?9?

声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任!

IEQ?filter:alpha(opacity=40);

//0为全透明Q?00Z透明

非IE:opacity:.4;

//0为全透明Q?0Z透明?/p>
本文的讨Z很精彩,览讨论>>


JavaEye推荐





文章来源:http://tianshi0253.javaeye.com/blog/205619

]]>
[导入]讄某个层相对于html内定w度自适应http://www.aygfsteel.com/tianshi0253/articles/209765.html姚文?/dc:creator>姚文?/author>Wed, 18 Jun 2008 10:10:00 GMThttp://www.aygfsteel.com/tianshi0253/articles/209765.htmlhttp://www.aygfsteel.com/tianshi0253/comments/209765.htmlhttp://www.aygfsteel.com/tianshi0253/articles/209765.html#Feedback0http://www.aygfsteel.com/tianshi0253/comments/commentRss/209765.htmlhttp://www.aygfsteel.com/tianshi0253/services/trackbacks/209765.html 作? tianshi0253  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/205278  发表旉: 2008q?6?8?

声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
	<head>
		<title>height auto</title>
		<style type="text/css">
		html,body{text-align:center; margin:0px; padding:0px; height:100%;}
			#box {
			overflow:auto; border:solid 1px red; float:left; margin-left:auto; margin-right:auto; width:80%; 
			}
			
			.subbox{
				display:inline;
				display:block;
				
				float:left;
				width:100px;
				
				margin:50px;
				border:solid 1px red;
				height:50%;
				
			}
			
			#box{height:100%;}
			
			
			</style>
		</head>
		<body>
			<div id="box">

			    <div class="subbox"></div>

			</div>
		</body>
</html>

 要设|网늚Qhtml,body,和它的父元素的高度ؓ100%才可以?/strong>


本文的讨Z很精彩,览讨论>>


JavaEye推荐




文章来源:http://tianshi0253.javaeye.com/blog/205278

]]>
[导入]讄某个层相对于html内定w度自适应http://www.aygfsteel.com/tianshi0253/archive/2008/06/18/209745.html姚文?/dc:creator>姚文?/author>Wed, 18 Jun 2008 10:10:00 GMThttp://www.aygfsteel.com/tianshi0253/archive/2008/06/18/209745.htmlhttp://www.aygfsteel.com/tianshi0253/comments/209745.htmlhttp://www.aygfsteel.com/tianshi0253/archive/2008/06/18/209745.html#Feedback0http://www.aygfsteel.com/tianshi0253/comments/commentRss/209745.htmlhttp://www.aygfsteel.com/tianshi0253/services/trackbacks/209745.html 作? tianshi0253  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/205278  发表旉: 2008q?6?8?

声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
	<head>
		<title>height auto</title>
		<style type="text/css">
		html,body{text-align:center; margin:0px; padding:0px; height:100%;}
			#box {
			overflow:auto; border:solid 1px red; float:left; margin-left:auto; margin-right:auto; width:80%; 
			}
			
			.subbox{
				display:inline;
				display:block;
				
				float:left;
				width:100px;
				
				margin:50px;
				border:solid 1px red;
				height:50%;
				
			}
			
			#box{height:100%;}
			
			
			</style>
		</head>
		<body>
			<div id="box">

			    <div class="subbox"></div>

			</div>
		</body>
</html>

 要设|网늚Qhtml,body,和它的父元素的高度ؓ100%才可以?/strong>


本文的讨Z很精彩,览讨论>>


JavaEye推荐




文章来源:http://tianshi0253.javaeye.com/blog/205278

]]>
[导入]层高度自适应的问?-http://www.aygfsteel.com/tianshi0253/archive/2008/06/18/209746.html姚文?/dc:creator>姚文?/author>Wed, 18 Jun 2008 09:40:00 GMThttp://www.aygfsteel.com/tianshi0253/archive/2008/06/18/209746.htmlhttp://www.aygfsteel.com/tianshi0253/comments/209746.htmlhttp://www.aygfsteel.com/tianshi0253/archive/2008/06/18/209746.html#Feedback0http://www.aygfsteel.com/tianshi0253/comments/commentRss/209746.htmlhttp://www.aygfsteel.com/tianshi0253/services/trackbacks/209746.html 作? tianshi0253  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/205269  发表旉: 2008q?6?8?

声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
	<head>
		<title>height auto</title>
		<style type="text/css">
		html,body{text-align:center; margin:0px; padding:0px;}
			#box {
			overflow:auto; border:solid 1px red; float:left; margin-left:auto; margin-right:auto; width:80%; 
			}
			
			.subbox{
				display:inline;
				display:block;
				
				float:left;
				width:100px;
				height:100px;
				margin:50px;
				border:solid 1px red;
				
			}
			
			.clear{
				clear:both;
			}
			</style>
		</head>
		<body>
			<div id="box">
				<div class="subbox"></div>
                <div class="subbox"></div>
				<div class="subbox"></div>
                <div class="subbox"></div>
			    <div class="subbox"></div>
                <div class="subbox"></div>
                <div class="subbox"></div>
                <div class="subbox"></div>
				<div class="subbox"></div>
                <div class="subbox"></div>
			    <div class="subbox"></div>
                <div class="subbox"></div>
                <div class="subbox"></div>
                <div class="subbox"></div>
				<div class="subbox"></div>
                <div class="subbox"></div>
			    <div class="subbox"></div>
                <div class="subbox"></div>
                <div class="subbox"></div>
                <div class="subbox"></div>
				<div class="subbox"></div>
                <div class="subbox"></div>
			    <div class="subbox"></div>
                <div class="subbox"></div>
                <div class="subbox"></div>
                <div class="subbox"></div>
				<div class="subbox"></div>
                <div class="subbox"></div>
			    <div class="subbox"></div>
                <div class="subbox"></div>
                <div class="subbox"></div>
                <div class="subbox"></div>
				<div class="subbox"></div>
                <div class="subbox"></div>
			    <div class="subbox"></div>
                <div class="subbox"></div>
                
                
                
				<div class="clear"></div>
			</div>
		</body>
</html>

 

要让某个层高度自适应Q要把它的属性float讄为left或right|

在其中徏一个层Qƈ讄属性clear:both.


本文的讨Z很精彩,览讨论>>


JavaEye推荐




文章来源:http://tianshi0253.javaeye.com/blog/205269

]]>
[导入]层高度自适应的问?-http://www.aygfsteel.com/tianshi0253/articles/209766.html姚文?/dc:creator>姚文?/author>Wed, 18 Jun 2008 09:40:00 GMThttp://www.aygfsteel.com/tianshi0253/articles/209766.htmlhttp://www.aygfsteel.com/tianshi0253/comments/209766.htmlhttp://www.aygfsteel.com/tianshi0253/articles/209766.html#Feedback0http://www.aygfsteel.com/tianshi0253/comments/commentRss/209766.htmlhttp://www.aygfsteel.com/tianshi0253/services/trackbacks/209766.html 作? tianshi0253  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/205269  发表旉: 2008q?6?8?

声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
	<head>
		<title>height auto</title>
		<style type="text/css">
		html,body{text-align:center; margin:0px; padding:0px;}
			#box {
			overflow:auto; border:solid 1px red; float:left; margin-left:auto; margin-right:auto; width:80%; 
			}
			
			.subbox{
				display:inline;
				display:block;
				
				float:left;
				width:100px;
				height:100px;
				margin:50px;
				border:solid 1px red;
				
			}
			
			.clear{
				clear:both;
			}
			</style>
		</head>
		<body>
			<div id="box">
				<div class="subbox"></div>
                <div class="subbox"></div>
				<div class="subbox"></div>
                <div class="subbox"></div>
			    <div class="subbox"></div>
                <div class="subbox"></div>
                <div class="subbox"></div>
                <div class="subbox"></div>
				<div class="subbox"></div>
                <div class="subbox"></div>
			    <div class="subbox"></div>
                <div class="subbox"></div>
                <div class="subbox"></div>
                <div class="subbox"></div>
				<div class="subbox"></div>
                <div class="subbox"></div>
			    <div class="subbox"></div>
                <div class="subbox"></div>
                <div class="subbox"></div>
                <div class="subbox"></div>
				<div class="subbox"></div>
                <div class="subbox"></div>
			    <div class="subbox"></div>
                <div class="subbox"></div>
                <div class="subbox"></div>
                <div class="subbox"></div>
				<div class="subbox"></div>
                <div class="subbox"></div>
			    <div class="subbox"></div>
                <div class="subbox"></div>
                <div class="subbox"></div>
                <div class="subbox"></div>
				<div class="subbox"></div>
                <div class="subbox"></div>
			    <div class="subbox"></div>
                <div class="subbox"></div>
                
                
                
				<div class="clear"></div>
			</div>
		</body>
</html>

 

要让某个层高度自适应Q要把它的属性float讄为left或right|

在其中徏一个层Qƈ讄属性clear:both.


本文的讨Z很精彩,览讨论>>


JavaEye推荐




文章来源:http://tianshi0253.javaeye.com/blog/205269

]]>
[导入]常用CSS~写语法ȝhttp://www.aygfsteel.com/tianshi0253/articles/209767.html姚文?/dc:creator>姚文?/author>Wed, 18 Jun 2008 01:25:00 GMThttp://www.aygfsteel.com/tianshi0253/articles/209767.htmlhttp://www.aygfsteel.com/tianshi0253/comments/209767.htmlhttp://www.aygfsteel.com/tianshi0253/articles/209767.html#Feedback0http://www.aygfsteel.com/tianshi0253/comments/commentRss/209767.htmlhttp://www.aygfsteel.com/tianshi0253/services/trackbacks/209767.html 作? tianshi0253  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/205008  发表旉: 2008q?6?8?

声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任!

使用~写可以帮助减少你CSS文g的大,更加Ҏ阅读。css~写的主要规则如下:

颜色

16q制的色彩|如果每两位的值相同,可以~写一半,例如Q?/p>

#000000可以~写?000;#336699可以~写?369;

盒尺?/h4>

通常有下面四U书写方?

property:value1; 表示所有边都是一个值value1Q?
property:value1 value2; 表示top和bottom的值是value1,right和left的值是value2
property:value1 value2 value3; 表示top的值是value1Qright和left的值是value2Qbottom的值是value3
property:value1 value2 value3 value4; 四个gơ表Ctop,right,bottom,left
方便的记忆方法是时针,上右下左。具体应用在margin和padding的例子如下:

margin:1em 0 2em 0.5em;

Ҏ(border)

Ҏ的属性如下:

border-width:1px;
border-style:solid;
border-color:#000;

可以~写Z句:border:1px solid #000;
语法是border:width style color;

背景(Backgrounds)

背景的属性如下:

background-color:#f00;
background-image:url(background.gif);
background-repeat:no-repeat;
background-attachment:fixed;
background-position:0 0;

可以~写Z句:background:#f00 url(background.gif) no-repeat fixed 0 0;
语法是background:color image repeat attachment position;
你可以省略其中一个或多个属性|如果省略Q该属性值将用浏览器默认|默认gؓQ?/p>

color: transparent
image: none
repeat: repeat
attachment: scroll
position: 0% 0%

字体(fonts)

字体的属性如下:

font-style:italic;
font-variant:small-caps;
font-weight:bold;
font-size:1em;
line-height:140%;
font-family:"Lucida Grande",sans-serif;

可以~写Z句:font:italic small-caps bold 1em/140% "Lucida Grande",sans-serif;
注意Q如果你~写字体定义Q至要定义font-size和font-family两个倹{?/p>

列表(lists)

取消默认的圆点和序号可以q样?/p>

list-style:none;
list的属性如?

list-style-type:square;
list-style-position:inside;
list-style-image:url(image.gif);

可以~写Z句:list-style:square inside url(image.gif);


本文的讨Z很精彩,览讨论>>


JavaEye推荐




文章来源:http://tianshi0253.javaeye.com/blog/205008

]]>
[导入]常用CSS~写语法ȝhttp://www.aygfsteel.com/tianshi0253/archive/2008/06/18/209747.html姚文?/dc:creator>姚文?/author>Wed, 18 Jun 2008 01:25:00 GMThttp://www.aygfsteel.com/tianshi0253/archive/2008/06/18/209747.htmlhttp://www.aygfsteel.com/tianshi0253/comments/209747.htmlhttp://www.aygfsteel.com/tianshi0253/archive/2008/06/18/209747.html#Feedback0http://www.aygfsteel.com/tianshi0253/comments/commentRss/209747.htmlhttp://www.aygfsteel.com/tianshi0253/services/trackbacks/209747.html 作? tianshi0253  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/205008  发表旉: 2008q?6?8?

声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任!

使用~写可以帮助减少你CSS文g的大,更加Ҏ阅读。css~写的主要规则如下:

颜色

16q制的色彩|如果每两位的值相同,可以~写一半,例如Q?/p>

#000000可以~写?000;#336699可以~写?369;

盒尺?/h4>

通常有下面四U书写方?

property:value1; 表示所有边都是一个值value1Q?
property:value1 value2; 表示top和bottom的值是value1,right和left的值是value2
property:value1 value2 value3; 表示top的值是value1Qright和left的值是value2Qbottom的值是value3
property:value1 value2 value3 value4; 四个gơ表Ctop,right,bottom,left
方便的记忆方法是时针,上右下左。具体应用在margin和padding的例子如下:

margin:1em 0 2em 0.5em;

Ҏ(border)

Ҏ的属性如下:

border-width:1px;
border-style:solid;
border-color:#000;

可以~写Z句:border:1px solid #000;
语法是border:width style color;

背景(Backgrounds)

背景的属性如下:

background-color:#f00;
background-image:url(background.gif);
background-repeat:no-repeat;
background-attachment:fixed;
background-position:0 0;

可以~写Z句:background:#f00 url(background.gif) no-repeat fixed 0 0;
语法是background:color image repeat attachment position;
你可以省略其中一个或多个属性|如果省略Q该属性值将用浏览器默认|默认gؓQ?/p>

color: transparent
image: none
repeat: repeat
attachment: scroll
position: 0% 0%

字体(fonts)

字体的属性如下:

font-style:italic;
font-variant:small-caps;
font-weight:bold;
font-size:1em;
line-height:140%;
font-family:"Lucida Grande",sans-serif;

可以~写Z句:font:italic small-caps bold 1em/140% "Lucida Grande",sans-serif;
注意Q如果你~写字体定义Q至要定义font-size和font-family两个倹{?/p>

列表(lists)

取消默认的圆点和序号可以q样?/p>

list-style:none;
list的属性如?

list-style-type:square;
list-style-position:inside;
list-style-image:url(image.gif);

可以~写Z句:list-style:square inside url(image.gif);


本文的讨Z很精彩,览讨论>>


JavaEye推荐




文章来源:http://tianshi0253.javaeye.com/blog/205008

]]>
[导入]新闻列表滑门效果http://www.aygfsteel.com/tianshi0253/archive/2008/06/18/209748.html姚文?/dc:creator>姚文?/author>Wed, 18 Jun 2008 01:21:00 GMThttp://www.aygfsteel.com/tianshi0253/archive/2008/06/18/209748.htmlhttp://www.aygfsteel.com/tianshi0253/comments/209748.htmlhttp://www.aygfsteel.com/tianshi0253/archive/2008/06/18/209748.html#Feedback0http://www.aygfsteel.com/tianshi0253/comments/commentRss/209748.htmlhttp://www.aygfsteel.com/tianshi0253/services/trackbacks/209748.html 作? tianshi0253  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/205005  发表旉: 2008q?6?8?

声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任!

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0026)http://www.popuni.com/ -->
<HTML><HEAD><TITLE>l对l典的滑轮新LC?javascript+css)</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<style type="text/css">
<!--
BODY {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 12px; PADDING-BOTTOM: 0px; MARGIN: 0px auto; COLOR: black; LINE-HEIGHT: 150%; PADDING-TOP: 10px; BACKGROUND-COLOR: white; TEXT-ALIGN: center
}
.dis {
	DISPLAY: block
}
.undis {
	DISPLAY: none
}
#cntR {
	WIDTH: 302px
}
#NewsTop {
	CLEAR: both; MARGIN-BOTTOM: 16px
}
#NewsTop P {
	FLOAT: left; LINE-HEIGHT: 21px
}
#NewsTop P.topTit {
	FONT-WEIGHT: bold; WIDTH: 117px
}
#NewsTop P.topC0 {
	BACKGROUND: #dcdcdc; BORDER-LEFT: #f2f2f2 1px solid; WIDTH: 40px; CURSOR: pointer
}
#NewsTop P.topC1 {
	BACKGROUND: #c2130e; BORDER-LEFT: #f2f2f2 1px solid; WIDTH: 40px; COLOR: #fff
}
#NewsTop #NewsTop_tit {
	BORDER-BOTTOM: #c2130e 3px solid; HEIGHT: 21px
}
#NewsTop #NewsTop_cnt {
	PADDING-LEFT: 32px; BACKGROUND: url(http://www.popuni.com/attachments/month_0703/o2007320133249.gif) no-repeat 12px 13px; LINE-HEIGHT: 26px; PADDING-TOP: 7px; HEIGHT: 260px; TEXT-ALIGN: left
}
#NewsTop #NewsTop_cnt A {
	COLOR: #666; TEXT-DECORATION: none
}
#NewsTop #NewsTop_cnt A:hover {
	COLOR: #c2130e; TEXT-DECORATION: underline
}
-->
</style>
</HEAD>
<BODY>
<DIV id=cntR>
  <DIV id=NewsTop>
    <DIV id=NewsTop_tit>
      <P class=topTit>新闻排行</P>
      <P class=topC0>国内</P>
      <P class=topC0>国际</P>
      <P class=topC0>C会</P>
      <P class=topC0>|评</P>
    </DIV>
    <DIV id=NewsTop_cnt><SPAN title="Don't delete me"></SPAN>
	<SPAN>
	  <A href="#" target=_self>新疆阜康铁\桥梁坍塌多节q煤车厢侧翻坠河</A><BR>
      <A href="#" target=_self>最高法:承诺不判赖昌星死刑没有超法律程?lt;/A><BR>
      <A href="#" target=_self>物权??0q住宅徏讄C用权自动箋?lt;/A><BR>
      <A href="#" target=_self>弟弟被妻下药毒死男子买女ؓ光阴婚(?</A><BR>
      <A href="#" target=_self>揭开郑州枪手神U面U?头号狙击手是q视?lt;/A><BR>
      <A href="#" target=_self>军高官:不排除和中国发生直接军事Ҏ可能</A><BR>
      <A href="#" target=_self>江东阳传奇富姐吴英涉嫌非法吸收存款被批?lt;/A><BR>
      <A href="#" target=_self>西方炒作"中国航母威胁?U?5q已正式服役</A><BR>
      <A href="#" target=_self>奛_生活无法自理请h大代表递交安乐死议?lt;/A><BR>
      <A href="#" target=_self>部:住房公积金制度将覆盖农民?lt;/A><BR>
	  <div align="right"><A href="#" target=_self>...more</A></div>
    </SPAN>
	<SPAN>
	    <A href="#" target=_self>华裔女兵在营房上吊M军方介入调查(?</A><BR>
        <A href="#" target=_self>l图Q美国ȝ布什车队被撞</A><BR>
        <A href="#" target=_self>梦露掌握肯尼q之弟秘密遭诱骗自杀(l图)</A><BR>
        <A href="#" target=_self>孟加拉国严打贪官Zh自危奔驰宝马抛弃路边</A><BR>
        <A href="#" target=_self>韩国D行大规模军事演习(图文)</A><BR>
        <A href="#" target=_self>l图Q土星最大卫星表面发现“vz?lt;/A><BR>
        <A href="#" target=_self>墨西哥缉毒行动缴?亿美元巨额现?l图)</A><BR>
        <A href="#" target=_self>l图Q全球掀赯体抗议加拿大捕猎vzd</A><BR>
        <A href="#" target=_self>潜艇在百慕大失t一晚航母战出动搜?lt;/A><BR>
        <A href="#" target=_self>匈牙?0万hC威 政要被民众扔鸡蛋(l图)</A><BR>
		<div align="right"><A href="#" target=_self>...more</A></div>
      </SPAN>
	  <SPAN>
	      <A href="#" target=_self>深圳奛_被三名男子轮奸男友目睹过E?l图)</A><BR>
          <A href="#" target=_self>男子珍藏一角钱“币王”h格高?.3??</A><BR>
          <A href="#" target=_self>青v奛_被困z头房每天接客十几次(?</A><BR>
          <A href="#" target=_self>l图Q老妻夫演绎忘年?9岁妻子成功除?lt;/A><BR>
          <A href="#" target=_self>陕西蓝田县电视台播放淫秽影像 ?0分钟左右</A><BR>
          <A href="#" target=_self>奛_自称被大学教授诱骗同居讨要分手费(?</A><BR>
          <A href="#" target=_self>l图Q男女私处成造型“性”趣C品太出?lt;/A><BR>
          <A href="#" target=_self>l图Q四川泸?6岁女孩打造中国第一丑女</A><BR>
          <A href="#" target=_self>最高法:承诺不判赖昌星死刑没有超法律程?lt;/A><BR>
          <A href="#" target=_self>深圳发现睾丸被摘L怽l:疑ؓ1月前p</A><BR>
		  <div align="right"><A href="#" target=_self>...more</A></div>
        </SPAN>
		<SPAN>
		  <A href="#" target=_self>养\费征E员强制扣R致三轮R夫惨死R轮下</A><BR>
            <A href="#" target=_self>20多位学者谈中医问题 方舟子遭多名专家扚w</A><BR>
            <A href="#" target=_self>考研女生自称揭露监考老师作弊 成W被判零分</A><BR>
            <A href="#" target=_self>全国政协委员一户一房制引v|民热议</A><BR>
            <A href="#" target=_self>沛_周口?名警察将人打昏后扔下楼摔?lt;/A><BR>
            <A href="#" target=_self>l图Q?9岁老妻除皱成功 与少夫开始新生活</A><BR>
            <A href="#" target=_self>青v奛_被困z头房每天接客十几次(?</A><BR>
            <A href="#" target=_self>上:解放军不是美军对?导弹打不垮台?lt;/A><BR>
            <A href="#" target=_self>新疆阜康铁\桥梁坍塌Dq煤列Rp</A><BR>
            <A href="#" target=_self>铁道部回应吴敬琏质疑:春运不涨价将长期坚持</A><BR>
			<div align="right"><A href="#" target=_self>...more</A></div>
        </SPAN>
		</DIV>
            <SCRIPT>
				var Tags=document.getElementById('NewsTop_tit').getElementsByTagName('p'); 
				var TagsCnt=document.getElementById('NewsTop_cnt').getElementsByTagName('span'); 
				var len=Tags.length; 
				var flag=1;//修改默认?
				for(i=1;i<len;i++){
					Tags[i].value = i;
					Tags[i].onmouseover=function(){changeNav(this.value)}; 
					TagsCnt[i].className='undis';					
				}
				Tags[flag].className='topC1';
				TagsCnt[flag].className='dis';
				function changeNav(v){	
					Tags[flag].className='topC0';
					TagsCnt[flag].className='undis';
					flag=v;	
					Tags[v].className='topC1';
					TagsCnt[v].className='dis';
				}
			</SCRIPT>
  </DIV>
</DIV>
</BODY></HTML>

 


本文的讨Z很精彩,览讨论>>


JavaEye推荐




文章来源:http://tianshi0253.javaeye.com/blog/205005

]]>
[导入]新闻列表滑门效果http://www.aygfsteel.com/tianshi0253/articles/209768.html姚文?/dc:creator>姚文?/author>Wed, 18 Jun 2008 01:21:00 GMThttp://www.aygfsteel.com/tianshi0253/articles/209768.htmlhttp://www.aygfsteel.com/tianshi0253/comments/209768.htmlhttp://www.aygfsteel.com/tianshi0253/articles/209768.html#Feedback0http://www.aygfsteel.com/tianshi0253/comments/commentRss/209768.htmlhttp://www.aygfsteel.com/tianshi0253/services/trackbacks/209768.html 作? tianshi0253  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/205005  发表旉: 2008q?6?8?

声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任!

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0026)http://www.popuni.com/ -->
<HTML><HEAD><TITLE>l对l典的滑轮新LC?javascript+css)</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<style type="text/css">
<!--
BODY {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 12px; PADDING-BOTTOM: 0px; MARGIN: 0px auto; COLOR: black; LINE-HEIGHT: 150%; PADDING-TOP: 10px; BACKGROUND-COLOR: white; TEXT-ALIGN: center
}
.dis {
	DISPLAY: block
}
.undis {
	DISPLAY: none
}
#cntR {
	WIDTH: 302px
}
#NewsTop {
	CLEAR: both; MARGIN-BOTTOM: 16px
}
#NewsTop P {
	FLOAT: left; LINE-HEIGHT: 21px
}
#NewsTop P.topTit {
	FONT-WEIGHT: bold; WIDTH: 117px
}
#NewsTop P.topC0 {
	BACKGROUND: #dcdcdc; BORDER-LEFT: #f2f2f2 1px solid; WIDTH: 40px; CURSOR: pointer
}
#NewsTop P.topC1 {
	BACKGROUND: #c2130e; BORDER-LEFT: #f2f2f2 1px solid; WIDTH: 40px; COLOR: #fff
}
#NewsTop #NewsTop_tit {
	BORDER-BOTTOM: #c2130e 3px solid; HEIGHT: 21px
}
#NewsTop #NewsTop_cnt {
	PADDING-LEFT: 32px; BACKGROUND: url(http://www.popuni.com/attachments/month_0703/o2007320133249.gif) no-repeat 12px 13px; LINE-HEIGHT: 26px; PADDING-TOP: 7px; HEIGHT: 260px; TEXT-ALIGN: left
}
#NewsTop #NewsTop_cnt A {
	COLOR: #666; TEXT-DECORATION: none
}
#NewsTop #NewsTop_cnt A:hover {
	COLOR: #c2130e; TEXT-DECORATION: underline
}
-->
</style>
</HEAD>
<BODY>
<DIV id=cntR>
  <DIV id=NewsTop>
    <DIV id=NewsTop_tit>
      <P class=topTit>新闻排行</P>
      <P class=topC0>国内</P>
      <P class=topC0>国际</P>
      <P class=topC0>C会</P>
      <P class=topC0>|评</P>
    </DIV>
    <DIV id=NewsTop_cnt><SPAN title="Don't delete me"></SPAN>
	<SPAN>
	  <A href="#" target=_self>新疆阜康铁\桥梁坍塌多节q煤车厢侧翻坠河</A><BR>
      <A href="#" target=_self>最高法:承诺不判赖昌星死刑没有超法律程?lt;/A><BR>
      <A href="#" target=_self>物权??0q住宅徏讄C用权自动箋?lt;/A><BR>
      <A href="#" target=_self>弟弟被妻下药毒死男子买女ؓ光阴婚(?</A><BR>
      <A href="#" target=_self>揭开郑州枪手神U面U?头号狙击手是q视?lt;/A><BR>
      <A href="#" target=_self>军高官:不排除和中国发生直接军事Ҏ可能</A><BR>
      <A href="#" target=_self>江东阳传奇富姐吴英涉嫌非法吸收存款被批?lt;/A><BR>
      <A href="#" target=_self>西方炒作"中国航母威胁?U?5q已正式服役</A><BR>
      <A href="#" target=_self>奛_生活无法自理请h大代表递交安乐死议?lt;/A><BR>
      <A href="#" target=_self>部:住房公积金制度将覆盖农民?lt;/A><BR>
	  <div align="right"><A href="#" target=_self>...more</A></div>
    </SPAN>
	<SPAN>
	    <A href="#" target=_self>华裔女兵在营房上吊M军方介入调查(?</A><BR>
        <A href="#" target=_self>l图Q美国ȝ布什车队被撞</A><BR>
        <A href="#" target=_self>梦露掌握肯尼q之弟秘密遭诱骗自杀(l图)</A><BR>
        <A href="#" target=_self>孟加拉国严打贪官Zh自危奔驰宝马抛弃路边</A><BR>
        <A href="#" target=_self>韩国D行大规模军事演习(图文)</A><BR>
        <A href="#" target=_self>l图Q土星最大卫星表面发现“vz?lt;/A><BR>
        <A href="#" target=_self>墨西哥缉毒行动缴?亿美元巨额现?l图)</A><BR>
        <A href="#" target=_self>l图Q全球掀赯体抗议加拿大捕猎vzd</A><BR>
        <A href="#" target=_self>潜艇在百慕大失t一晚航母战出动搜?lt;/A><BR>
        <A href="#" target=_self>匈牙?0万hC威 政要被民众扔鸡蛋(l图)</A><BR>
		<div align="right"><A href="#" target=_self>...more</A></div>
      </SPAN>
	  <SPAN>
	      <A href="#" target=_self>深圳奛_被三名男子轮奸男友目睹过E?l图)</A><BR>
          <A href="#" target=_self>男子珍藏一角钱“币王”h格高?.3??</A><BR>
          <A href="#" target=_self>青v奛_被困z头房每天接客十几次(?</A><BR>
          <A href="#" target=_self>l图Q老妻夫演绎忘年?9岁妻子成功除?lt;/A><BR>
          <A href="#" target=_self>陕西蓝田县电视台播放淫秽影像 ?0分钟左右</A><BR>
          <A href="#" target=_self>奛_自称被大学教授诱骗同居讨要分手费(?</A><BR>
          <A href="#" target=_self>l图Q男女私处成造型“性”趣C品太出?lt;/A><BR>
          <A href="#" target=_self>l图Q四川泸?6岁女孩打造中国第一丑女</A><BR>
          <A href="#" target=_self>最高法:承诺不判赖昌星死刑没有超法律程?lt;/A><BR>
          <A href="#" target=_self>深圳发现睾丸被摘L怽l:疑ؓ1月前p</A><BR>
		  <div align="right"><A href="#" target=_self>...more</A></div>
        </SPAN>
		<SPAN>
		  <A href="#" target=_self>养\费征E员强制扣R致三轮R夫惨死R轮下</A><BR>
            <A href="#" target=_self>20多位学者谈中医问题 方舟子遭多名专家扚w</A><BR>
            <A href="#" target=_self>考研女生自称揭露监考老师作弊 成W被判零分</A><BR>
            <A href="#" target=_self>全国政协委员一户一房制引v|民热议</A><BR>
            <A href="#" target=_self>沛_周口?名警察将人打昏后扔下楼摔?lt;/A><BR>
            <A href="#" target=_self>l图Q?9岁老妻除皱成功 与少夫开始新生活</A><BR>
            <A href="#" target=_self>青v奛_被困z头房每天接客十几次(?</A><BR>
            <A href="#" target=_self>上:解放军不是美军对?导弹打不垮台?lt;/A><BR>
            <A href="#" target=_self>新疆阜康铁\桥梁坍塌Dq煤列Rp</A><BR>
            <A href="#" target=_self>铁道部回应吴敬琏质疑:春运不涨价将长期坚持</A><BR>
			<div align="right"><A href="#" target=_self>...more</A></div>
        </SPAN>
		</DIV>
            <SCRIPT>
				var Tags=document.getElementById('NewsTop_tit').getElementsByTagName('p'); 
				var TagsCnt=document.getElementById('NewsTop_cnt').getElementsByTagName('span'); 
				var len=Tags.length; 
				var flag=1;//修改默认?
				for(i=1;i<len;i++){
					Tags[i].value = i;
					Tags[i].onmouseover=function(){changeNav(this.value)}; 
					TagsCnt[i].className='undis';					
				}
				Tags[flag].className='topC1';
				TagsCnt[flag].className='dis';
				function changeNav(v){	
					Tags[flag].className='topC0';
					TagsCnt[flag].className='undis';
					flag=v;	
					Tags[v].className='topC1';
					TagsCnt[v].className='dis';
				}
			</SCRIPT>
  </DIV>
</DIV>
</BODY></HTML>

 


本文的讨Z很精彩,览讨论>>


JavaEye推荐




文章来源:http://tianshi0253.javaeye.com/blog/205005

]]>
[导入]用CSS实现的好看的按钮http://www.aygfsteel.com/tianshi0253/articles/209769.html姚文?/dc:creator>姚文?/author>Wed, 18 Jun 2008 01:19:00 GMThttp://www.aygfsteel.com/tianshi0253/articles/209769.htmlhttp://www.aygfsteel.com/tianshi0253/comments/209769.htmlhttp://www.aygfsteel.com/tianshi0253/articles/209769.html#Feedback0http://www.aygfsteel.com/tianshi0253/comments/commentRss/209769.htmlhttp://www.aygfsteel.com/tianshi0253/services/trackbacks/209769.html 作? tianshi0253  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/205004  发表旉: 2008q?6?8?

声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任!

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>用CSS实现的几个非常漂亮的按钮</title>
<style>
.btn {
BORDER-RIGHT: #7b9ebd 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #7b9ebd 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#cecfde); BORDER-LEFT: #7b9ebd 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #7b9ebd 1px solid
}
.btn1_mouseout {
BORDER-RIGHT: #7EBF4F 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #7EBF4F 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#B3D997); BORDER-LEFT: #7EBF4F 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #7EBF4F 1px solid
}
.btn1_mouseover {
BORDER-RIGHT: #7EBF4F 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #7EBF4F 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#CAE4B6); BORDER-LEFT: #7EBF4F 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #7EBF4F 1px solid
}
.btn2 {padding: 2 4 0 4;font-size:12px;height:23;background-color:#ece9d8;border-width:1;}
.btn3_mouseout {
BORDER-RIGHT: #2C59AA 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #2C59AA 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#C3DAF5); BORDER-LEFT: #2C59AA 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #2C59AA 1px solid
}
.btn3_mouseover {
BORDER-RIGHT: #2C59AA 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #2C59AA 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#D7E7FA); BORDER-LEFT: #2C59AA 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #2C59AA 1px solid
}
.btn3_mousedown
{
BORDER-RIGHT: #FFE400 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #FFE400 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#C3DAF5); BORDER-LEFT: #FFE400 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #FFE400 1px solid
}
.btn3_mouseup {
BORDER-RIGHT: #2C59AA 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #2C59AA 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#C3DAF5); BORDER-LEFT: #2C59AA 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #2C59AA 1px solid
}
.btn_2k3 {
BORDER-RIGHT: #002D96 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #002D96 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#FFFFFF, EndColorStr=#9DBCEA); BORDER-LEFT: #002D96 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #002D96 1px solid
}
</style>
</head>

<body>
<button class=btn title="好看的按?>好看的按?lt;/button><P></p>
<button 
class=btn1_mouseout onmouseover="this.className='btn1_mouseover'"
onmouseout="this.className='btn1_mouseout'"
title="好看的按?>好看的按?lt;/button>  
<button 
class=btn1_mouseout onmouseover="this.className='btn1_mouseover'"
onmouseout="this.className='btn1_mouseout'" DISABLED>好看的按?lt;/button>
<P>
<button class=btn2 title="好看的按?>好看的按?lt;/button>
<P>
<button class=btn3_mouseout onmouseover="this.className='btn3_mouseover'"
onmouseout="this.className='btn3_mouseout'"
onmousedown="this.className='btn3_mousedown'"
onmouseup="this.className='btn3_mouseup'"
title="好看的按?>好看的按?lt;/button>
<P>
<button class=btn_2k3 title="好看的按?>好看的按?lt;/button>
</body>

</html>

 


本文的讨Z很精彩,览讨论>>


JavaEye推荐




文章来源:http://tianshi0253.javaeye.com/blog/205004

]]>
[导入]用CSS实现的好看的按钮http://www.aygfsteel.com/tianshi0253/archive/2008/06/18/209749.html姚文?/dc:creator>姚文?/author>Wed, 18 Jun 2008 01:19:00 GMThttp://www.aygfsteel.com/tianshi0253/archive/2008/06/18/209749.htmlhttp://www.aygfsteel.com/tianshi0253/comments/209749.htmlhttp://www.aygfsteel.com/tianshi0253/archive/2008/06/18/209749.html#Feedback0http://www.aygfsteel.com/tianshi0253/comments/commentRss/209749.htmlhttp://www.aygfsteel.com/tianshi0253/services/trackbacks/209749.html 作? tianshi0253  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/205004  发表旉: 2008q?6?8?

声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任!

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>用CSS实现的几个非常漂亮的按钮</title>
<style>
.btn {
BORDER-RIGHT: #7b9ebd 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #7b9ebd 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#cecfde); BORDER-LEFT: #7b9ebd 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #7b9ebd 1px solid
}
.btn1_mouseout {
BORDER-RIGHT: #7EBF4F 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #7EBF4F 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#B3D997); BORDER-LEFT: #7EBF4F 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #7EBF4F 1px solid
}
.btn1_mouseover {
BORDER-RIGHT: #7EBF4F 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #7EBF4F 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#CAE4B6); BORDER-LEFT: #7EBF4F 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #7EBF4F 1px solid
}
.btn2 {padding: 2 4 0 4;font-size:12px;height:23;background-color:#ece9d8;border-width:1;}
.btn3_mouseout {
BORDER-RIGHT: #2C59AA 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #2C59AA 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#C3DAF5); BORDER-LEFT: #2C59AA 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #2C59AA 1px solid
}
.btn3_mouseover {
BORDER-RIGHT: #2C59AA 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #2C59AA 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#D7E7FA); BORDER-LEFT: #2C59AA 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #2C59AA 1px solid
}
.btn3_mousedown
{
BORDER-RIGHT: #FFE400 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #FFE400 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#C3DAF5); BORDER-LEFT: #FFE400 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #FFE400 1px solid
}
.btn3_mouseup {
BORDER-RIGHT: #2C59AA 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #2C59AA 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#C3DAF5); BORDER-LEFT: #2C59AA 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #2C59AA 1px solid
}
.btn_2k3 {
BORDER-RIGHT: #002D96 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #002D96 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#FFFFFF, EndColorStr=#9DBCEA); BORDER-LEFT: #002D96 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #002D96 1px solid
}
</style>
</head>

<body>
<button class=btn title="好看的按?>好看的按?lt;/button><P></p>
<button 
class=btn1_mouseout onmouseover="this.className='btn1_mouseover'"
onmouseout="this.className='btn1_mouseout'"
title="好看的按?>好看的按?lt;/button>  
<button 
class=btn1_mouseout onmouseover="this.className='btn1_mouseover'"
onmouseout="this.className='btn1_mouseout'" DISABLED>好看的按?lt;/button>
<P>
<button class=btn2 title="好看的按?>好看的按?lt;/button>
<P>
<button class=btn3_mouseout onmouseover="this.className='btn3_mouseover'"
onmouseout="this.className='btn3_mouseout'"
onmousedown="this.className='btn3_mousedown'"
onmouseup="this.className='btn3_mouseup'"
title="好看的按?>好看的按?lt;/button>
<P>
<button class=btn_2k3 title="好看的按?>好看的按?lt;/button>
</body>

</html>

 


本文的讨Z很精彩,览讨论>>


JavaEye推荐




文章来源:http://tianshi0253.javaeye.com/blog/205004

]]>
[导入]复选框全选代?/title><link>http://www.aygfsteel.com/tianshi0253/archive/2008/06/18/209750.html</link><dc:creator>姚文?/dc:creator><author>姚文?/author><pubDate>Wed, 18 Jun 2008 01:16:00 GMT</pubDate><guid>http://www.aygfsteel.com/tianshi0253/archive/2008/06/18/209750.html</guid><wfw:comment>http://www.aygfsteel.com/tianshi0253/comments/209750.html</wfw:comment><comments>http://www.aygfsteel.com/tianshi0253/archive/2008/06/18/209750.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/tianshi0253/comments/commentRss/209750.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/tianshi0253/services/trackbacks/209750.html</trackback:ping><description><![CDATA[ <br/> 作? <a >tianshi0253</a>  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/205001</a>  发表旉: 2008q?6?8? <br/><br/> 声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任! <br/><br/> <pre name="code" class="html"><SCRIPT> function check(obj) { var checkboxList=obj.parentNode.getElementsByTagName("input"); var count=checkboxList.length; var flag=obj.checked; for(var i=0; i<count;i++){ checkboxList[i].checked=flag; } } </script> <form name=myform> <input type=checkbox onClick="check(this)"> <p> <input type=checkbox value="1" onClick="check(this)"> <input type=checkbox value="1"> <input type=checkbox value="1"> <input type=checkbox value="1"> <input type=checkbox value="1"> </p> <p> <input type=checkbox value="2" onClick="check(this)"> <input type=checkbox value="2"> <input type=checkbox value="2"> <input type=checkbox value="2"> <input type=checkbox value="2"> </p> </form></pre> <p> </p> <br/> <span style="color:red;"> <a style="color:red;">本文的讨Z很精彩,览讨论>></a> </span> <br/><br/><br/> <span style="color:#E28822;">JavaEye推荐</span> <br/> <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软g研发工程?/span></a></li><li><a href='/adverts/92' target='_blank'>立刻报名Q免费获取门,参加SOA技术论?q州6?9?</a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐|站诚聘Java、PHP和C++工程?/span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线Q有Oracle最新文章,重要下蝲及知识库{精彩内容,Ƣ迎讉K?/span></a></li></ul> <br/><br/><br/> <br>文章来源:<a >http://tianshi0253.javaeye.com/blog/205001</a><img src ="http://www.aygfsteel.com/tianshi0253/aggbug/209750.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/tianshi0253/" target="_blank">姚文?/a> 2008-06-18 09:16 <a href="http://www.aygfsteel.com/tianshi0253/archive/2008/06/18/209750.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]复选框全选代?/title><link>http://www.aygfsteel.com/tianshi0253/articles/209770.html</link><dc:creator>姚文?/dc:creator><author>姚文?/author><pubDate>Wed, 18 Jun 2008 01:16:00 GMT</pubDate><guid>http://www.aygfsteel.com/tianshi0253/articles/209770.html</guid><wfw:comment>http://www.aygfsteel.com/tianshi0253/comments/209770.html</wfw:comment><comments>http://www.aygfsteel.com/tianshi0253/articles/209770.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/tianshi0253/comments/commentRss/209770.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/tianshi0253/services/trackbacks/209770.html</trackback:ping><description><![CDATA[ <br/> 作? <a >tianshi0253</a>  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/205001</a>  发表旉: 2008q?6?8? <br/><br/> 声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任! <br/><br/> <pre name="code" class="html"><SCRIPT> function check(obj) { var checkboxList=obj.parentNode.getElementsByTagName("input"); var count=checkboxList.length; var flag=obj.checked; for(var i=0; i<count;i++){ checkboxList[i].checked=flag; } } </script> <form name=myform> <input type=checkbox onClick="check(this)"> <p> <input type=checkbox value="1" onClick="check(this)"> <input type=checkbox value="1"> <input type=checkbox value="1"> <input type=checkbox value="1"> <input type=checkbox value="1"> </p> <p> <input type=checkbox value="2" onClick="check(this)"> <input type=checkbox value="2"> <input type=checkbox value="2"> <input type=checkbox value="2"> <input type=checkbox value="2"> </p> </form></pre> <p> </p> <br/> <span style="color:red;"> <a style="color:red;">本文的讨Z很精彩,览讨论>></a> </span> <br/><br/><br/> <span style="color:#E28822;">JavaEye推荐</span> <br/> <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐|站诚聘Java、PHP和C++工程?/span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线Q有Oracle最新文章,重要下蝲及知识库{精彩内容,Ƣ迎讉K?/span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软g研发工程?/span></a></li><li><a href='/adverts/92' target='_blank'>立刻报名Q免费获取门,参加SOA技术论?q州6?9?</a></li></ul> <br/><br/><br/> <br>文章来源:<a >http://tianshi0253.javaeye.com/blog/205001</a><img src ="http://www.aygfsteel.com/tianshi0253/aggbug/209770.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/tianshi0253/" target="_blank">姚文?/a> 2008-06-18 09:16 <a href="http://www.aygfsteel.com/tianshi0253/articles/209770.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]弹出层ƈloading效果http://www.aygfsteel.com/tianshi0253/articles/209771.html姚文?/dc:creator>姚文?/author>Wed, 18 Jun 2008 01:14:00 GMThttp://www.aygfsteel.com/tianshi0253/articles/209771.htmlhttp://www.aygfsteel.com/tianshi0253/comments/209771.htmlhttp://www.aygfsteel.com/tianshi0253/articles/209771.html#Feedback0http://www.aygfsteel.com/tianshi0253/comments/commentRss/209771.htmlhttp://www.aygfsteel.com/tianshi0253/services/trackbacks/209771.html 作? tianshi0253  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/205000  发表旉: 2008q?6?8?

声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>-</title>
<style>
body {margin:0px}
#Loading {position:absolute;z-index:10;left:10px;top:10px;border:1px #666666 solid;background:#eeeeee;width:10px;height:10px}
.LoadContent {width:100%;height:100%;overflow:auto}
</style>
<script LANGUAGE="JavaScript"> 
<!-- 
function $(){return document.getElementById?document.getElementById(arguments[0]):eval(arguments[0]);}
var OverH,OverW,ChangeDesc,ChangeH=50,ChangeW=50;
function OpenDiv(_Dw,_Dh,_Desc) {
$("Loading").innerHTML="Loading...";
OverH=_Dh;OverW=_Dw;ChangeDesc=_Desc;
$("Loading").style.display='';
if(_Dw>_Dh){ChangeH=Math.ceil((_Dh-10)/((_Dw-10)/50))}else if(_Dw<_Dh){ChangeW=Math.ceil((_Dw-10)/((_Dh-10)/50))}
$("Loading").style.top=(document.documentElement.clientHeight-10)/2+"px";
$("Loading").style.left=(document.documentElement.clientWidth-10)/2+"px";
OpenNow()
}
var Nw=10,Nh=10;
function OpenNow() {
if (Nw>OverW-ChangeW)ChangeW=2;
if (Nh>OverH-ChangeH)ChangeH=2;
Nw=Nw+ChangeW;Nh=Nh+ChangeH;

if(OverW>Nw||OverH>Nh) {
	if(OverW>Nw) {
	$("Loading").style.width=Nw+"px";
	$("Loading").style.left=(document.documentElement.clientWidth-Nw)/2+"px";
	}
	if(OverH>Nh) {
	$("Loading").style.height=Nh+"px";
	$("Loading").style.top=(document.documentElement.clientHeight-Nh)/2+"px"
	}
	window.setTimeout("OpenNow()",10)
	}else{
	Nw=10;Nh=10;ChangeH=50;ChangeW=50;
	AjaxGet(ChangeDesc)
	}
}

//创徏XML对象
function createXMLHttps(){
var ret = null;
try {ret = new ActiveXObject('Msxml2.XMLHTTP')}
catch (e) {
	try {ret = new ActiveXObject('Microsoft.XMLHTTP')}
        catch (ee) {ret = null}
	}
if (!ret&&typeof XMLHttpRequest !='undefined') ret = new XMLHttpRequest();
return ret;
}

function AjaxGet(URL) {
var xmlhttp = createXMLHttps();
xmlhttp.open("Get",URL,true);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status==404) {$("Loading").innerHTML='d面p|,文g'+URL+'不存?';return}
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
		$("Loading").innerHTML="<div class='LoadContent'>"+xmlhttp.responseText+"</div>";
		}
	}
xmlhttp.send(null);
}
//-->
</script> 
</head>
<body>
׃不能跨域,d的文仉在同一域名?如果出现错误,<br>原因是在目标文g上的,本例代码本n没有错误<br>
<font color=red>如果目标文g数据q大,p的时间也相对较长,外部文g需用utf-8~码,否则中文可能昄Zؕ?lt;/font>
<br><br>
  <a href="javascript:OpenDiv(500,300,'forum-1-1.html')">forum-1-1.html 500*300</a><br><br>
  <a href="javascript:OpenDiv(500,200,'faq.php')">faq.php 500*200</a><br><br>
  <a href="javascript:OpenDiv(200,500,'1.html')">1.html 200*500</a><br><br>
  <a href="javascript:OpenDiv(500,500,'2.html')">2.html 500*500</a><br><br>
双击关闭?
<div id="Loading" style="display:none" ondblclick="this.style.display='none'"></div>
</body>
</html>

 


本文的讨Z很精彩,览讨论>>


JavaEye推荐




文章来源:http://tianshi0253.javaeye.com/blog/205000

]]>
[导入]弹出层ƈloading效果http://www.aygfsteel.com/tianshi0253/archive/2008/06/18/209751.html姚文?/dc:creator>姚文?/author>Wed, 18 Jun 2008 01:14:00 GMThttp://www.aygfsteel.com/tianshi0253/archive/2008/06/18/209751.htmlhttp://www.aygfsteel.com/tianshi0253/comments/209751.htmlhttp://www.aygfsteel.com/tianshi0253/archive/2008/06/18/209751.html#Feedback0http://www.aygfsteel.com/tianshi0253/comments/commentRss/209751.htmlhttp://www.aygfsteel.com/tianshi0253/services/trackbacks/209751.html 作? tianshi0253  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/205000  发表旉: 2008q?6?8?

声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>-</title>
<style>
body {margin:0px}
#Loading {position:absolute;z-index:10;left:10px;top:10px;border:1px #666666 solid;background:#eeeeee;width:10px;height:10px}
.LoadContent {width:100%;height:100%;overflow:auto}
</style>
<script LANGUAGE="JavaScript"> 
<!-- 
function $(){return document.getElementById?document.getElementById(arguments[0]):eval(arguments[0]);}
var OverH,OverW,ChangeDesc,ChangeH=50,ChangeW=50;
function OpenDiv(_Dw,_Dh,_Desc) {
$("Loading").innerHTML="Loading...";
OverH=_Dh;OverW=_Dw;ChangeDesc=_Desc;
$("Loading").style.display='';
if(_Dw>_Dh){ChangeH=Math.ceil((_Dh-10)/((_Dw-10)/50))}else if(_Dw<_Dh){ChangeW=Math.ceil((_Dw-10)/((_Dh-10)/50))}
$("Loading").style.top=(document.documentElement.clientHeight-10)/2+"px";
$("Loading").style.left=(document.documentElement.clientWidth-10)/2+"px";
OpenNow()
}
var Nw=10,Nh=10;
function OpenNow() {
if (Nw>OverW-ChangeW)ChangeW=2;
if (Nh>OverH-ChangeH)ChangeH=2;
Nw=Nw+ChangeW;Nh=Nh+ChangeH;

if(OverW>Nw||OverH>Nh) {
	if(OverW>Nw) {
	$("Loading").style.width=Nw+"px";
	$("Loading").style.left=(document.documentElement.clientWidth-Nw)/2+"px";
	}
	if(OverH>Nh) {
	$("Loading").style.height=Nh+"px";
	$("Loading").style.top=(document.documentElement.clientHeight-Nh)/2+"px"
	}
	window.setTimeout("OpenNow()",10)
	}else{
	Nw=10;Nh=10;ChangeH=50;ChangeW=50;
	AjaxGet(ChangeDesc)
	}
}

//创徏XML对象
function createXMLHttps(){
var ret = null;
try {ret = new ActiveXObject('Msxml2.XMLHTTP')}
catch (e) {
	try {ret = new ActiveXObject('Microsoft.XMLHTTP')}
        catch (ee) {ret = null}
	}
if (!ret&&typeof XMLHttpRequest !='undefined') ret = new XMLHttpRequest();
return ret;
}

function AjaxGet(URL) {
var xmlhttp = createXMLHttps();
xmlhttp.open("Get",URL,true);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status==404) {$("Loading").innerHTML='d面p|,文g'+URL+'不存?';return}
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
		$("Loading").innerHTML="<div class='LoadContent'>"+xmlhttp.responseText+"</div>";
		}
	}
xmlhttp.send(null);
}
//-->
</script> 
</head>
<body>
׃不能跨域,d的文仉在同一域名?如果出现错误,<br>原因是在目标文g上的,本例代码本n没有错误<br>
<font color=red>如果目标文g数据q大,p的时间也相对较长,外部文g需用utf-8~码,否则中文可能昄Zؕ?lt;/font>
<br><br>
  <a href="javascript:OpenDiv(500,300,'forum-1-1.html')">forum-1-1.html 500*300</a><br><br>
  <a href="javascript:OpenDiv(500,200,'faq.php')">faq.php 500*200</a><br><br>
  <a href="javascript:OpenDiv(200,500,'1.html')">1.html 200*500</a><br><br>
  <a href="javascript:OpenDiv(500,500,'2.html')">2.html 500*500</a><br><br>
双击关闭?
<div id="Loading" style="display:none" ondblclick="this.style.display='none'"></div>
</body>
</html>

 


本文的讨Z很精彩,览讨论>>


JavaEye推荐




文章来源:http://tianshi0253.javaeye.com/blog/205000

]]>
[导入]l典树Ş菜单http://www.aygfsteel.com/tianshi0253/archive/2008/06/18/209752.html姚文?/dc:creator>姚文?/author>Wed, 18 Jun 2008 01:11:00 GMThttp://www.aygfsteel.com/tianshi0253/archive/2008/06/18/209752.htmlhttp://www.aygfsteel.com/tianshi0253/comments/209752.htmlhttp://www.aygfsteel.com/tianshi0253/archive/2008/06/18/209752.html#Feedback0http://www.aygfsteel.com/tianshi0253/comments/commentRss/209752.htmlhttp://www.aygfsteel.com/tianshi0253/services/trackbacks/209752.html 作? tianshi0253  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/204998  发表旉: 2008q?6?8?

声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任!

<htm>
<head>
</head>
<body>
<div id="treeArea"></div>
<script language="javascript">
function Node(parentId, id, openStatus, text, url, color){
this.parentId = parentId; // 父节点的id
this.id     = id;    // 自nid
this.href   = url;
this.color  = color;
this.openStatus = openStatus; // 当前的打开状?
this.haveChild = false;  // Z便于昄Q增加了该属性,判断该节Ҏ否有子节点,默认为没?
this.text  = text; // 昄的文本信?
}
// 定义一个数l用来保存所有的节点(Node)包括根节?RootNode), 也可以用其他的方式来保存
var arrTree = new Array();
//Z在得创Ҏ方便点,定义了下面的函数Q?
function createNode(parentId, id, openStatus, text, url, color){
// q里验一下输入的parentId是否存在Q不存在则提C错?
// checkParent(parentId);
// 验输入的id是否已经存在,如果存在做相应的处理Q?q里我就不写?
// checkId(id);
// 讄该parentId有子节点
if( parentId > -1 ){
if(!arrTree[parentId].hasChild)
arrTree[parentId].hasChild = true;
}
var node = new Node(parentId, id, openStatus, text, url, color);
arrTree[arrTree.length] = node;
}
/*-1q里定义为根节点的父节点Q不存在q样的节点,所以,判断节点的父节点?1Ӟ标识当前节点时父节点*/
createNode(-1/*上面的注?/, 0/*节点id*/, true/*关闭*/, "ExtJs2.02实例教程", '','green');
createNode(0, 1,  true, "1.ExtJs?);
createNode(0, 2,  true, "2.|格(Grids)");
createNode(0, 3,  true, "3.标签(tabs)");
createNode(0, 4,  true, "4.H体(Windows)");
createNode(0, 5,  true, "5.?Trees)");
createNode(0, 6,  true, "6.布局理?);
createNode(0, 7,  true, "7.l合?ComboBox)");
createNode(0, 8,  true, "8.表单(Forms)");
createNode(0, 9,  true, "9.工具条和菜单");
createNode(0, 10, true, "10.其他分类");
createNode(1, 11, false, "1.1 ExtJs?, "http://onlyaa.com/html/project/extjs/200805/21-2146.html", "blue");
createNode(1, 12, false, "1.2 ExtJs入门");
createNode(2, 21, false, "2.1 基本数组|格(Basic Array Grid)");
createNode(2, 22, false, "2.2 XML|格(XML Grid)");
createNode(2, 23, false, "2.3 JSON|格(JSON Grid)");
createNode(2, 24, false, "2.4 可编辑的|格(Editable Grid))");
createNode(2, 25, false, "2.5 分页(Paging)");
createNode(2, 26, false, "2.6 分组(Grouping)");
createNode(2, 27, false, "2.7 实时分组l计(Live Group Summary)");
createNode(2, 28, false, "2.8 定制:|格插g(Customizing: Grid Plugins)");
createNode(3, 31, false, "3.1 基本标签(Basic Tabs)");
createNode(3, 32, false, "3.2 实时标签");
createNode(4, 41, false, "4.1 Hello World");
createNode(4, 42, false, "4.2 对话?MessageBox)");
createNode(4, 43, false, "4.3 布局H口(Layout Window)");
createNode(5, 51, false, "5.1 拖放排列(Drag and Drop Reordering)");
createNode(5, 52, false, "5.2 多棵?Multiple trees)");
createNode(5, 53, false, "5.3 定制:列树(Customizing: Column Tree)");
createNode(6, 61, false, "6.1 区域布局(Border Layout)");
createNode(6, 62, false, "6.2 固定布局(Anchor Layout)");
createNode(6, 63, false, "6.3 定制:门户|站(Customizing: Portals)");
createNode(7, 71, false, "7.1 基本l合?Basic ComboBox)");
createNode(7, 72, false, "7.2 定制:l合框模?Customizing: ComboBox Templates)");
createNode(8, 81, false, "8.1 动态表?Dynamic Forms)");
createNode(8, 82, false, "8.2 AJAX生成的XML表单(Ajax with XML Forms)");
createNode(8, 83, false, "8.3 定制:搜烦?Customizing: Search Field)");
createNode(9, 91, false, "9.1 基本工具?Basic Toolbar)");
createNode(9, 92, false, "9.2 Ext 动作(Ext Actions)");
createNode(10, 101, false, "10.1 数据视图(DataView)");
createNode(10, 102, false, "10.2 数据视图(Advanced DataView)");
createNode(10, 103, false, "10.3 q度?Progress Bar)");
createNode(10, 104, false, "10.4 模版(Templates)");
createNode(10, 105, false, "10.5 面板(Panels)");
createNode(10, 106, false, "10.6 调整大小(Resizable)");/*
q里单的创徏了一|Q但是还没有昄Q下面要做的是怎么昄:
可能Ҏ是有点笨拙,不要见?
? 昄?
// q个思\很容易理解,是从根节点开始, 在arrTree数组找该根节点的子节点q显C,
q里用的是递归方式去遍历每|Q?׃单的l构很简单的xQ所以没有考虑法的效率问?
*/
function doRender(){
var r = appendNode(0)
treeArea.appendChild(r);
}
// AppendNode(node), 该节点的子节点加蝲到container里面Q?是div对象
function appendNode(id){
node = arrTree[id]
var id = node.id;
var area = document.createElement("div");
var expand = document.createElement("span");
var textNode = document.createElement("span");
var subarea = document.createElement("div");
var str = ''
if( node.href ){
str += '<a href="'+node.href+'" target="_blank" ';
if( node.color )
str += ' style="color:'+node.color+';"';
str += '>'+ node.text + '</a> ';
} else {
if( node.color )
str += '<font color="'+node.color+'">'+ node.text+'</font>';
else
str = node.text;
}
textNode.innerHTML = str;
expand.style.fontFamily = 'Fixedsys';
expand.style.cursor = 'hand';
expand.style.color = 'red';
expand.style.padding = '5px';
expand.innerText = '-';
subarea.style.paddingLeft = '30px';
subarea.style.lineHeight = '2';
if( !node.openStatus ){
subarea.style.display = 'none';
}
area.style.padding = '4px';
area.appendChild(expand);
area.appendChild(textNode);
area.appendChild(subarea);
if(node.hasChild){
expand.innerText = '+';
if( node.openStatus ) {expand.innerText = '-'; }
expand.onclick = function(){
if( subarea.style.display == '' ){
node.openStatus = false;
this.innerHTML = '+';
subarea.style.display = 'none';
} else {
node.openStatus = true;
this.innerHTML = '-';
subarea.style.display = '';
}
}
for(var i=1/*因ؓ根节点在0位置Q所以从1开始查?/; i < arrTree.length; i++ ){
if( arrTree[i].parentId == id ){
var c = appendNode(i);
subarea.appendChild(c);
}
}
}
return area; // q回div对象Q里面包含了子树的信?
}
doRender();
</script>
</body>
</html>

 


本文的讨Z很精彩,览讨论>>


JavaEye推荐




文章来源:http://tianshi0253.javaeye.com/blog/204998

]]>
[导入]l典树Ş菜单http://www.aygfsteel.com/tianshi0253/articles/209772.html姚文?/dc:creator>姚文?/author>Wed, 18 Jun 2008 01:11:00 GMThttp://www.aygfsteel.com/tianshi0253/articles/209772.htmlhttp://www.aygfsteel.com/tianshi0253/comments/209772.htmlhttp://www.aygfsteel.com/tianshi0253/articles/209772.html#Feedback0http://www.aygfsteel.com/tianshi0253/comments/commentRss/209772.htmlhttp://www.aygfsteel.com/tianshi0253/services/trackbacks/209772.html 作? tianshi0253  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/204998  发表旉: 2008q?6?8?

声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任!

<htm>
<head>
</head>
<body>
<div id="treeArea"></div>
<script language="javascript">
function Node(parentId, id, openStatus, text, url, color){
this.parentId = parentId; // 父节点的id
this.id     = id;    // 自nid
this.href   = url;
this.color  = color;
this.openStatus = openStatus; // 当前的打开状?
this.haveChild = false;  // Z便于昄Q增加了该属性,判断该节Ҏ否有子节点,默认为没?
this.text  = text; // 昄的文本信?
}
// 定义一个数l用来保存所有的节点(Node)包括根节?RootNode), 也可以用其他的方式来保存
var arrTree = new Array();
//Z在得创Ҏ方便点,定义了下面的函数Q?
function createNode(parentId, id, openStatus, text, url, color){
// q里验一下输入的parentId是否存在Q不存在则提C错?
// checkParent(parentId);
// 验输入的id是否已经存在,如果存在做相应的处理Q?q里我就不写?
// checkId(id);
// 讄该parentId有子节点
if( parentId > -1 ){
if(!arrTree[parentId].hasChild)
arrTree[parentId].hasChild = true;
}
var node = new Node(parentId, id, openStatus, text, url, color);
arrTree[arrTree.length] = node;
}
/*-1q里定义为根节点的父节点Q不存在q样的节点,所以,判断节点的父节点?1Ӟ标识当前节点时父节点*/
createNode(-1/*上面的注?/, 0/*节点id*/, true/*关闭*/, "ExtJs2.02实例教程", '','green');
createNode(0, 1,  true, "1.ExtJs?);
createNode(0, 2,  true, "2.|格(Grids)");
createNode(0, 3,  true, "3.标签(tabs)");
createNode(0, 4,  true, "4.H体(Windows)");
createNode(0, 5,  true, "5.?Trees)");
createNode(0, 6,  true, "6.布局理?);
createNode(0, 7,  true, "7.l合?ComboBox)");
createNode(0, 8,  true, "8.表单(Forms)");
createNode(0, 9,  true, "9.工具条和菜单");
createNode(0, 10, true, "10.其他分类");
createNode(1, 11, false, "1.1 ExtJs?, "http://onlyaa.com/html/project/extjs/200805/21-2146.html", "blue");
createNode(1, 12, false, "1.2 ExtJs入门");
createNode(2, 21, false, "2.1 基本数组|格(Basic Array Grid)");
createNode(2, 22, false, "2.2 XML|格(XML Grid)");
createNode(2, 23, false, "2.3 JSON|格(JSON Grid)");
createNode(2, 24, false, "2.4 可编辑的|格(Editable Grid))");
createNode(2, 25, false, "2.5 分页(Paging)");
createNode(2, 26, false, "2.6 分组(Grouping)");
createNode(2, 27, false, "2.7 实时分组l计(Live Group Summary)");
createNode(2, 28, false, "2.8 定制:|格插g(Customizing: Grid Plugins)");
createNode(3, 31, false, "3.1 基本标签(Basic Tabs)");
createNode(3, 32, false, "3.2 实时标签");
createNode(4, 41, false, "4.1 Hello World");
createNode(4, 42, false, "4.2 对话?MessageBox)");
createNode(4, 43, false, "4.3 布局H口(Layout Window)");
createNode(5, 51, false, "5.1 拖放排列(Drag and Drop Reordering)");
createNode(5, 52, false, "5.2 多棵?Multiple trees)");
createNode(5, 53, false, "5.3 定制:列树(Customizing: Column Tree)");
createNode(6, 61, false, "6.1 区域布局(Border Layout)");
createNode(6, 62, false, "6.2 固定布局(Anchor Layout)");
createNode(6, 63, false, "6.3 定制:门户|站(Customizing: Portals)");
createNode(7, 71, false, "7.1 基本l合?Basic ComboBox)");
createNode(7, 72, false, "7.2 定制:l合框模?Customizing: ComboBox Templates)");
createNode(8, 81, false, "8.1 动态表?Dynamic Forms)");
createNode(8, 82, false, "8.2 AJAX生成的XML表单(Ajax with XML Forms)");
createNode(8, 83, false, "8.3 定制:搜烦?Customizing: Search Field)");
createNode(9, 91, false, "9.1 基本工具?Basic Toolbar)");
createNode(9, 92, false, "9.2 Ext 动作(Ext Actions)");
createNode(10, 101, false, "10.1 数据视图(DataView)");
createNode(10, 102, false, "10.2 数据视图(Advanced DataView)");
createNode(10, 103, false, "10.3 q度?Progress Bar)");
createNode(10, 104, false, "10.4 模版(Templates)");
createNode(10, 105, false, "10.5 面板(Panels)");
createNode(10, 106, false, "10.6 调整大小(Resizable)");/*
q里单的创徏了一|Q但是还没有昄Q下面要做的是怎么昄:
可能Ҏ是有点笨拙,不要见?
? 昄?
// q个思\很容易理解,是从根节点开始, 在arrTree数组找该根节点的子节点q显C,
q里用的是递归方式去遍历每|Q?׃单的l构很简单的xQ所以没有考虑法的效率问?
*/
function doRender(){
var r = appendNode(0)
treeArea.appendChild(r);
}
// AppendNode(node), 该节点的子节点加蝲到container里面Q?是div对象
function appendNode(id){
node = arrTree[id]
var id = node.id;
var area = document.createElement("div");
var expand = document.createElement("span");
var textNode = document.createElement("span");
var subarea = document.createElement("div");
var str = ''
if( node.href ){
str += '<a href="'+node.href+'" target="_blank" ';
if( node.color )
str += ' style="color:'+node.color+';"';
str += '>'+ node.text + '</a> ';
} else {
if( node.color )
str += '<font color="'+node.color+'">'+ node.text+'</font>';
else
str = node.text;
}
textNode.innerHTML = str;
expand.style.fontFamily = 'Fixedsys';
expand.style.cursor = 'hand';
expand.style.color = 'red';
expand.style.padding = '5px';
expand.innerText = '-';
subarea.style.paddingLeft = '30px';
subarea.style.lineHeight = '2';
if( !node.openStatus ){
subarea.style.display = 'none';
}
area.style.padding = '4px';
area.appendChild(expand);
area.appendChild(textNode);
area.appendChild(subarea);
if(node.hasChild){
expand.innerText = '+';
if( node.openStatus ) {expand.innerText = '-'; }
expand.onclick = function(){
if( subarea.style.display == '' ){
node.openStatus = false;
this.innerHTML = '+';
subarea.style.display = 'none';
} else {
node.openStatus = true;
this.innerHTML = '-';
subarea.style.display = '';
}
}
for(var i=1/*因ؓ根节点在0位置Q所以从1开始查?/; i < arrTree.length; i++ ){
if( arrTree[i].parentId == id ){
var c = appendNode(i);
subarea.appendChild(c);
}
}
}
return area; // q回div对象Q里面包含了子树的信?
}
doRender();
</script>
</body>
</html>

 


本文的讨Z很精彩,览讨论>>


JavaEye推荐




文章来源:http://tianshi0253.javaeye.com/blog/204998

]]>
[导入]化后的select 列表?/title><link>http://www.aygfsteel.com/tianshi0253/articles/209773.html</link><dc:creator>姚文?/dc:creator><author>姚文?/author><pubDate>Wed, 18 Jun 2008 01:09:00 GMT</pubDate><guid>http://www.aygfsteel.com/tianshi0253/articles/209773.html</guid><wfw:comment>http://www.aygfsteel.com/tianshi0253/comments/209773.html</wfw:comment><comments>http://www.aygfsteel.com/tianshi0253/articles/209773.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/tianshi0253/comments/commentRss/209773.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/tianshi0253/services/trackbacks/209773.html</trackback:ping><description><![CDATA[ <br/> 作? <a >tianshi0253</a>  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/204995</a>  发表旉: 2008q?6?8? <br/><br/> 声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任! <br/><br/> <pre name="code" class="html"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>my select</title> <style type="text/css"> <!-- body { margin: 0px; padding: 30px 0px 0px 30px; background-color: #CFDFEF; font-size: 12px; } .selectA { width: 92px; height: 17px; padding-left: 10px; padding-top: 5px; background-image: url(http://labs.utombox.com/select2css/tm2008-select.gif); overflow: hidden; cursor: pointer; } .selectB { display: none; width: 81px; height: auto; background-image: url(http://labs.utombox.com/select2css/tm2008-select.gif); background-position: -102px 0px; border-bottom: 1px solid #4EA0D1; } .selectB .item { width: 71px; height: 17px; background-image: url(http://labs.utombox.com/select2css/tm2008-select.gif); background-position: -102px 0px; padding-left: 10px; padding-top: 5px; overflow: hidden; cursor: pointer; } --> </style> <script type="text/javascript"> <!-- //val var items = null; var selectA = null; var selectB = null; var selectAClicked = false; //method function $(s) { return document.getElementById(s); } window.onload = function() { items = [$("itemA"),$("itemB"),$("itemC"),$("itemD"),$("itemE"),$("itemF"),$("itemG"),$("itemH")]; selectA = $("selectA"); selectB = $("selectB"); //init items[0].style.backgroundPosition = "0px -66px"; //selectA event selectA.onmouseover = function() { if(selectAClicked) return; this.style.backgroundPosition = "0px -22px"; } selectA.onmouseout = function() { if(selectAClicked) return; this.style.backgroundPosition = "0px 0px"; } selectA.onclick = function() { if(selectAClicked) { selectAClicked = false; this.style.backgroundPosition = "0px -22px"; selectB.style.display = "none"; return; } selectAClicked = true; this.style.backgroundPosition = "0px -44px"; selectB.style.display = "block"; } //selectB event //none //items event function itemMouseOver() { this.style.backgroundPosition = "0px -88px"; } function itemMouseOut() { if(this.innerHTML == selectA.innerHTML) { this.style.backgroundPosition = "0px -66px"; return; } this.style.backgroundPosition = "-102px 0px"; } function itemClick() { for(var i=0,length=items.length;i<length;i++) items[i].style.backgroundPosition = "-102px 0px"; this.style.backgroundPosition = "0px -66px"; selectA.innerHTML = this.innerHTML; selectB.style.display = "none"; selectA.style.backgroundPosition = "0px 0px"; selectAClicked = false; } for(var i=0,length=items.length;i<length;i++) { items[i].onmouseover = itemMouseOver; items[i].onmouseout = itemMouseOut; items[i].onclick = itemClick; } } //--> </script> </head> <body> <div class="selectA" id="selectA">itemA</div> <div class="selectB" id="selectB"> <div class="item" id="itemA">itemA</div> <div class="item" id="itemB">itemB</div> <div class="item" id="itemC">itemC</div> <div class="item" id="itemD">itemD</div> <div class="item" id="itemE">itemE</div> <div class="item" id="itemF">itemF</div> <div class="item" id="itemG">itemG</div> <div class="item" id="itemH">itemH</div> </div> </body> </html></pre> <p> </p> <br/> <span style="color:red;"> <a style="color:red;">本文的讨Z很精彩,览讨论>></a> </span> <br/><br/><br/> <span style="color:#E28822;">JavaEye推荐</span> <br/> <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软g研发工程?/span></a></li><li><a href='/adverts/92' target='_blank'>立刻报名Q免费获取门,参加SOA技术论?q州6?9?</a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐|站诚聘Java、PHP和C++工程?/span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线Q有Oracle最新文章,重要下蝲及知识库{精彩内容,Ƣ迎讉K?/span></a></li></ul> <br/><br/><br/> <br>文章来源:<a >http://tianshi0253.javaeye.com/blog/204995</a><img src ="http://www.aygfsteel.com/tianshi0253/aggbug/209773.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/tianshi0253/" target="_blank">姚文?/a> 2008-06-18 09:09 <a href="http://www.aygfsteel.com/tianshi0253/articles/209773.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]化后的select 列表?/title><link>http://www.aygfsteel.com/tianshi0253/archive/2008/06/18/209753.html</link><dc:creator>姚文?/dc:creator><author>姚文?/author><pubDate>Wed, 18 Jun 2008 01:09:00 GMT</pubDate><guid>http://www.aygfsteel.com/tianshi0253/archive/2008/06/18/209753.html</guid><wfw:comment>http://www.aygfsteel.com/tianshi0253/comments/209753.html</wfw:comment><comments>http://www.aygfsteel.com/tianshi0253/archive/2008/06/18/209753.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/tianshi0253/comments/commentRss/209753.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/tianshi0253/services/trackbacks/209753.html</trackback:ping><description><![CDATA[ <br/> 作? <a >tianshi0253</a>  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/204995</a>  发表旉: 2008q?6?8? <br/><br/> 声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任! <br/><br/> <pre name="code" class="html"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>my select</title> <style type="text/css"> <!-- body { margin: 0px; padding: 30px 0px 0px 30px; background-color: #CFDFEF; font-size: 12px; } .selectA { width: 92px; height: 17px; padding-left: 10px; padding-top: 5px; background-image: url(http://labs.utombox.com/select2css/tm2008-select.gif); overflow: hidden; cursor: pointer; } .selectB { display: none; width: 81px; height: auto; background-image: url(http://labs.utombox.com/select2css/tm2008-select.gif); background-position: -102px 0px; border-bottom: 1px solid #4EA0D1; } .selectB .item { width: 71px; height: 17px; background-image: url(http://labs.utombox.com/select2css/tm2008-select.gif); background-position: -102px 0px; padding-left: 10px; padding-top: 5px; overflow: hidden; cursor: pointer; } --> </style> <script type="text/javascript"> <!-- //val var items = null; var selectA = null; var selectB = null; var selectAClicked = false; //method function $(s) { return document.getElementById(s); } window.onload = function() { items = [$("itemA"),$("itemB"),$("itemC"),$("itemD"),$("itemE"),$("itemF"),$("itemG"),$("itemH")]; selectA = $("selectA"); selectB = $("selectB"); //init items[0].style.backgroundPosition = "0px -66px"; //selectA event selectA.onmouseover = function() { if(selectAClicked) return; this.style.backgroundPosition = "0px -22px"; } selectA.onmouseout = function() { if(selectAClicked) return; this.style.backgroundPosition = "0px 0px"; } selectA.onclick = function() { if(selectAClicked) { selectAClicked = false; this.style.backgroundPosition = "0px -22px"; selectB.style.display = "none"; return; } selectAClicked = true; this.style.backgroundPosition = "0px -44px"; selectB.style.display = "block"; } //selectB event //none //items event function itemMouseOver() { this.style.backgroundPosition = "0px -88px"; } function itemMouseOut() { if(this.innerHTML == selectA.innerHTML) { this.style.backgroundPosition = "0px -66px"; return; } this.style.backgroundPosition = "-102px 0px"; } function itemClick() { for(var i=0,length=items.length;i<length;i++) items[i].style.backgroundPosition = "-102px 0px"; this.style.backgroundPosition = "0px -66px"; selectA.innerHTML = this.innerHTML; selectB.style.display = "none"; selectA.style.backgroundPosition = "0px 0px"; selectAClicked = false; } for(var i=0,length=items.length;i<length;i++) { items[i].onmouseover = itemMouseOver; items[i].onmouseout = itemMouseOut; items[i].onclick = itemClick; } } //--> </script> </head> <body> <div class="selectA" id="selectA">itemA</div> <div class="selectB" id="selectB"> <div class="item" id="itemA">itemA</div> <div class="item" id="itemB">itemB</div> <div class="item" id="itemC">itemC</div> <div class="item" id="itemD">itemD</div> <div class="item" id="itemE">itemE</div> <div class="item" id="itemF">itemF</div> <div class="item" id="itemG">itemG</div> <div class="item" id="itemH">itemH</div> </div> </body> </html></pre> <p> </p> <br/> <span style="color:red;"> <a style="color:red;">本文的讨Z很精彩,览讨论>></a> </span> <br/><br/><br/> <span style="color:#E28822;">JavaEye推荐</span> <br/> <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线Q有Oracle最新文章,重要下蝲及知识库{精彩内容,Ƣ迎讉K?/span></a></li><li><a href='/adverts/92' target='_blank'>立刻报名Q免费获取门,参加SOA技术论?q州6?9?</a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐|站诚聘Java、PHP和C++工程?/span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软g研发工程?/span></a></li></ul> <br/><br/><br/> <br>文章来源:<a >http://tianshi0253.javaeye.com/blog/204995</a><img src ="http://www.aygfsteel.com/tianshi0253/aggbug/209753.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/tianshi0253/" target="_blank">姚文?/a> 2008-06-18 09:09 <a href="http://www.aygfsteel.com/tianshi0253/archive/2008/06/18/209753.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]什么是哈希?/title><link>http://www.aygfsteel.com/tianshi0253/archive/2008/06/17/209754.html</link><dc:creator>姚文?/dc:creator><author>姚文?/author><pubDate>Tue, 17 Jun 2008 04:11:00 GMT</pubDate><guid>http://www.aygfsteel.com/tianshi0253/archive/2008/06/17/209754.html</guid><wfw:comment>http://www.aygfsteel.com/tianshi0253/comments/209754.html</wfw:comment><comments>http://www.aygfsteel.com/tianshi0253/archive/2008/06/17/209754.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/tianshi0253/comments/commentRss/209754.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/tianshi0253/services/trackbacks/209754.html</trackback:ping><description><![CDATA[ <br/> 作? <a >tianshi0253</a>  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/204640</a>  发表旉: 2008q?6?7? <br/><br/> 声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任! <br/><br/> <p>下面引用一些别的地?<br />1 基本原理 <br /><br />我们使用一个下标范围比较大的数l来存储元素。可以设计一个函敎ͼ哈希函数Q?也叫做散列函敎ͼQ得每个元素的关键字都与一个函数|xl下标)相对应,于是用这个数l单元来存储q个元素Q也可以单的理解为,按照关键字ؓ每一个元?分类"Q然后将q个元素存储在相?c?所对应的地斏V?<br /><br />但是Q不能够保证每个元素的关键字与函数值是一一对应的,因此极有可能出现对于不同的元素,却计出了相同的函数|q样׃生了"冲突"Q换句话_是把不同的元素分在了相同的"c?之中。后面我们将看到一U解?冲突"的简便做法?<br /><br />ȝ来说Q?直接定址"?解决冲突"是哈希表的两大特炏V?<br /><br />2 函数构?<br /><br />构造函数的常用ҎQ下面ؓ了叙q简z,?h(k) 表示关键字ؓ k 的元素所对应的函数|Q?<br /><br />a) 除余法: <br /><br />选择一个适当的正整数 p Qo h(k ) = k mod p <br />q里Q?p 如果选取的是比较大的素数Q效果比较好。而且此法非常Ҏ实现Q因此是最常用的方法?<br /><br />b) 数字选择法: <br /><br />如果关键字的位数比较多,过长整型范围而无法直接运,可以选择其中数字分布比较均匀的若q位Q所l成的新的g为关键字或者直接作为函数倹{?<br /><br />3 冲突处理 <br /><br />U性重新散列技术易于实C可以较好的达到目的。o数组元素个数?S Q则?h(k) 已经存储了元素的时候,依次探查 (h(k)+i) mod S , i=1,2,3…… Q直到找到空的存储单元ؓ止(或者从头到扫描一圈仍未发现空单元Q这是哈希表已l满了,发生了错误。当然这是可以通过扩大数组范围避免的)?<br /><br />4 支持q算 <br /><br />哈希表支持的q算主要有:初始?makenull)、哈希函数值的q算(h(x))、插入元?insert)、查扑օ?member)?<br />设插入的元素的关键字?x QA 为存储的数组?<br />初始化比较容易,例如 <br />const empty=maxlongint; // 用非常大的整C表这个位|没有存储元?<br />p=9997; // 表的大小 <br />procedure makenull; <br />var i:integer; <br />begin <br />for i:=0 to p-1 do <br />A[i]:=empty; <br />End; <br /><br />哈希函数值的q算Ҏ函数的不同而变化,例如除余法的一个例子: <br />function h(x:longint):Integer; <br />begin <br />h:= x mod p; <br />end; <br /><br />我们注意刎ͼ插入和查N先都需要对q个元素定位Q即如果q个元素若存在,它应该存储在什么位|,因此加入一个定位的函数 locate <br />function locate(x:longint):integer; <br />var orig,i:integer; <br />begin <br />orig:=h(x); <br />i:=0; <br />while (i<S)and(A[(orig+i)mod S]<>x)and(A[(orig+i)mod S]<>empty) do <br />inc(i); <br />//当这个@环停下来Ӟ要么扑ֈ一个空的存储单元,要么扑ֈq个?<br />//素存储的单元Q要么表已经满了 <br />locate:=(orig+i) mod S; <br />end; <br />插入元素 <br />procedure insert(x:longint); <br />var posi:integer; <br />begin <br />posi:=locate(x); //定位函数的返回?<br />if A[posi]=empty then A[posi]:=x <br />else error; //error 即ؓ发生了错误,当然q是可以避免?<br />end; <br /><br />查找元素是否已经在表?<br />procedure member(x:longint):boolean; <br />var posi:integer; <br />begin <br />posi:=locate(x); <br />if A[posi]=x then member:=true <br />else member:=false; <br />end; <br /><br />q些是建立在哈希表上的常用基本q算?/p> <br/> <span style="color:red;"> <a style="color:red;">本文的讨Z很精彩,览讨论>></a> </span> <br/><br/><br/> <span style="color:#E28822;">JavaEye推荐</span> <br/> <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软g研发工程?/span></a></li><li><a href='/adverts/92' target='_blank'>立刻报名Q免费获取门,参加SOA技术论?q州6?9?</a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线Q有Oracle最新文章,重要下蝲及知识库{精彩内容,Ƣ迎讉K?/span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐|站诚聘Java、PHP和C++工程?/span></a></li></ul> <br/><br/><br/> <br>文章来源:<a >http://tianshi0253.javaeye.com/blog/204640</a><img src ="http://www.aygfsteel.com/tianshi0253/aggbug/209754.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/tianshi0253/" target="_blank">姚文?/a> 2008-06-17 12:11 <a href="http://www.aygfsteel.com/tianshi0253/archive/2008/06/17/209754.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]什么是哈希?/title><link>http://www.aygfsteel.com/tianshi0253/articles/209774.html</link><dc:creator>姚文?/dc:creator><author>姚文?/author><pubDate>Tue, 17 Jun 2008 04:11:00 GMT</pubDate><guid>http://www.aygfsteel.com/tianshi0253/articles/209774.html</guid><wfw:comment>http://www.aygfsteel.com/tianshi0253/comments/209774.html</wfw:comment><comments>http://www.aygfsteel.com/tianshi0253/articles/209774.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/tianshi0253/comments/commentRss/209774.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/tianshi0253/services/trackbacks/209774.html</trackback:ping><description><![CDATA[ <br/> 作? <a >tianshi0253</a>  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/204640</a>  发表旉: 2008q?6?7? <br/><br/> 声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任! <br/><br/> <p>下面引用一些别的地?<br />1 基本原理 <br /><br />我们使用一个下标范围比较大的数l来存储元素。可以设计一个函敎ͼ哈希函数Q?也叫做散列函敎ͼQ得每个元素的关键字都与一个函数|xl下标)相对应,于是用这个数l单元来存储q个元素Q也可以单的理解为,按照关键字ؓ每一个元?分类"Q然后将q个元素存储在相?c?所对应的地斏V?<br /><br />但是Q不能够保证每个元素的关键字与函数值是一一对应的,因此极有可能出现对于不同的元素,却计出了相同的函数|q样׃生了"冲突"Q换句话_是把不同的元素分在了相同的"c?之中。后面我们将看到一U解?冲突"的简便做法?<br /><br />ȝ来说Q?直接定址"?解决冲突"是哈希表的两大特炏V?<br /><br />2 函数构?<br /><br />构造函数的常用ҎQ下面ؓ了叙q简z,?h(k) 表示关键字ؓ k 的元素所对应的函数|Q?<br /><br />a) 除余法: <br /><br />选择一个适当的正整数 p Qo h(k ) = k mod p <br />q里Q?p 如果选取的是比较大的素数Q效果比较好。而且此法非常Ҏ实现Q因此是最常用的方法?<br /><br />b) 数字选择法: <br /><br />如果关键字的位数比较多,过长整型范围而无法直接运,可以选择其中数字分布比较均匀的若q位Q所l成的新的g为关键字或者直接作为函数倹{?<br /><br />3 冲突处理 <br /><br />U性重新散列技术易于实C可以较好的达到目的。o数组元素个数?S Q则?h(k) 已经存储了元素的时候,依次探查 (h(k)+i) mod S , i=1,2,3…… Q直到找到空的存储单元ؓ止(或者从头到扫描一圈仍未发现空单元Q这是哈希表已l满了,发生了错误。当然这是可以通过扩大数组范围避免的)?<br /><br />4 支持q算 <br /><br />哈希表支持的q算主要有:初始?makenull)、哈希函数值的q算(h(x))、插入元?insert)、查扑օ?member)?<br />设插入的元素的关键字?x QA 为存储的数组?<br />初始化比较容易,例如 <br />const empty=maxlongint; // 用非常大的整C表这个位|没有存储元?<br />p=9997; // 表的大小 <br />procedure makenull; <br />var i:integer; <br />begin <br />for i:=0 to p-1 do <br />A[i]:=empty; <br />End; <br /><br />哈希函数值的q算Ҏ函数的不同而变化,例如除余法的一个例子: <br />function h(x:longint):Integer; <br />begin <br />h:= x mod p; <br />end; <br /><br />我们注意刎ͼ插入和查N先都需要对q个元素定位Q即如果q个元素若存在,它应该存储在什么位|,因此加入一个定位的函数 locate <br />function locate(x:longint):integer; <br />var orig,i:integer; <br />begin <br />orig:=h(x); <br />i:=0; <br />while (i<S)and(A[(orig+i)mod S]<>x)and(A[(orig+i)mod S]<>empty) do <br />inc(i); <br />//当这个@环停下来Ӟ要么扑ֈ一个空的存储单元,要么扑ֈq个?<br />//素存储的单元Q要么表已经满了 <br />locate:=(orig+i) mod S; <br />end; <br />插入元素 <br />procedure insert(x:longint); <br />var posi:integer; <br />begin <br />posi:=locate(x); //定位函数的返回?<br />if A[posi]=empty then A[posi]:=x <br />else error; //error 即ؓ发生了错误,当然q是可以避免?<br />end; <br /><br />查找元素是否已经在表?<br />procedure member(x:longint):boolean; <br />var posi:integer; <br />begin <br />posi:=locate(x); <br />if A[posi]=x then member:=true <br />else member:=false; <br />end; <br /><br />q些是建立在哈希表上的常用基本q算?/p> <br/> <span style="color:red;"> <a style="color:red;">本文的讨Z很精彩,览讨论>></a> </span> <br/><br/><br/> <span style="color:#E28822;">JavaEye推荐</span> <br/> <ul class='adverts'><li><a href='/adverts/92' target='_blank'>立刻报名Q免费获取门,参加SOA技术论?q州6?9?</a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软g研发工程?/span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐|站诚聘Java、PHP和C++工程?/span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线Q有Oracle最新文章,重要下蝲及知识库{精彩内容,Ƣ迎讉K?/span></a></li></ul> <br/><br/><br/> <br>文章来源:<a >http://tianshi0253.javaeye.com/blog/204640</a><img src ="http://www.aygfsteel.com/tianshi0253/aggbug/209774.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/tianshi0253/" target="_blank">姚文?/a> 2008-06-17 12:11 <a href="http://www.aygfsteel.com/tianshi0253/articles/209774.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]java中的iopȝȝ.Q{Q?/title><link>http://www.aygfsteel.com/tianshi0253/articles/209775.html</link><dc:creator>姚文?/dc:creator><author>姚文?/author><pubDate>Tue, 17 Jun 2008 01:44:00 GMT</pubDate><guid>http://www.aygfsteel.com/tianshi0253/articles/209775.html</guid><wfw:comment>http://www.aygfsteel.com/tianshi0253/comments/209775.html</wfw:comment><comments>http://www.aygfsteel.com/tianshi0253/articles/209775.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.aygfsteel.com/tianshi0253/comments/commentRss/209775.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/tianshi0253/services/trackbacks/209775.html</trackback:ping><description><![CDATA[ <br/> 作? <a >tianshi0253</a>  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/204576</a>  发表旉: 2008q?6?7? <br/><br/> 声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任! <br/><br/> <p>java中的io中的Qinput/outputQstream无非是包括Z字符的stream、基于字节的stream和把字节导向的stream转换<br />字符为导向的stream的stream。(很难理解么?Q?br />以字节ؓ导向的stream------InputStream/OutputStream<br />InputStream ?OutputStream是两个abstactc,对于字节为导向的stream都扩展这两个鸡肋Q基c^_^Q?<br />--InputStream<br />ByteArrayInputStream -- 把内存中的一个缓冲区作ؓInputStream使用.<br /><br />construct---ByteArrayInputStream(byte[])创徏一个新字节数组输入,它从指定字节数组中读取数据?br />---ByteArrayInputStream(byte[], int, int) 创徏一个新字节数组输入,它从指定字节数组中读取数据?br />---mark::该字节数l未被复制?br /><br />StringBufferInputStream -- 把一个String对象作ؓInputStream .<br />注释Q不推荐使用 StringBufferInputStream Ҏ?此类不能字W正的转换为字节?br />?JDK 1.1 版中的类|从一个串创徏一个流的最x法是采用 StringReader cR?<br /><br />construct---StringBufferInputStream(String) 据指定串创徏一个读取数据的输入串?br /><br />FileInputStream -- 把一个文件作为InputStreamQ实现对文g的读取操?<br /><br />construct---FileInputStream(File) 创徏一个输入文件流Q从指定?File 对象d数据?br />---FileInputStream(FileDescriptor) 创徏一个输入文件流Q从指定的文件描q器d数据?br />---FileInputStream(String) 创徏一个输入文件流Q从指定名称的文件读取数据?br /><br />method ---- read() 从当前输入流中读取一字节数据?<br />read(byte[]) 当前输入流?b.length 个字节数据读C个字节数l中?<br />read(byte[], int, int) 输入流?len 个字节数据读入一个字节数l中?br /><br />PipedInputStreamQ实Cpipe的概念,主要在线E中使用. 道输入是指一个通讯道的接收端?br />一个线E通过道输出发送数据,而另一个线E通过道输入读取数据,<br />q样可实C个线E间的通讯?br /><br />PipedInputStream() 创徏一个管道输入流Q它q未与一个管道输出流q接?<br />PipedInputStream(PipedOutputStream) 创徏一个管道输入流, 它已q接C个管道输出流?<br /><br />SequenceInputStreamQ把多个InputStream合ƈZ个InputStream .“序列输入?rdquo;cd许应用程序把几个输入连l地合ƈhQ?br />q且使它们像单个输入一样出现。每个输入流依次被读取,直到到达该流的末?br />然后“序列输入?rdquo;cd闭这个流q自动地切换C一个输入流?<br />SequenceInputStream(Enumeration) 创徏一个新的序列输入流Qƈ用指定的输入的枚D值初始化它?<br />SequenceInputStream(InputStream, InputStream) 创徏一个新的序列输入流Q初始化为首?读输入流 s1, 然后读输入流 s2?br /><br />--OutputSteam<br /><br />ByteArrayOutputStreamQ把信息存入内存中的一个缓冲区?该类实现一个以字节数组形式写入数据的输出流?br />当数据写入缓冲区Ӟ它自动扩大。用 toByteArray() ?toString() 能检索数据?<br /><br />construct --- ByteArrayOutputStream() 创徏一个新的字节数l输出流?br />--- ByteArrayOutputStream() 创徏一个新的字节数l输出流?<br />--- ByteArrayOutputStream(int) 创徏一个新的字节数l输出流Qƈ带有指定大小字节的缓冲区定w?<br />toString(String) Ҏ指定字符~码缓冲区内容转换为字W串Qƈ字节{换ؓ字符?<br />write(byte[], int, int) 指定字节数l中从偏U量 off 开始的 len 个字节写入该字节数组输出?<br />write(int) 指定字节写入该字节数组输出?<br />writeTo(OutputStream) ?out.write(buf, 0, count) 调用输出的写方法将该字节数l输出流的全部内容写入指定的输出参数?<br /><br />FileOutputStream:文g输出是?File ?FileDescriptor 输出数据的一个输出流?br /><br />FileOutputStream(File) 创徏一个文件输出流Q向指定?File 对象输出数据?<br />FileOutputStream(FileDescriptor) 创徏一个文件输出流Q向指定的文件描q器输出数据?<br />FileOutputStream(String) 创徏一个文件输出流Q向指定名称的文件输出数据?<br />FileOutputStream(String, boolean) 用指定系l的文g名,创徏一个输出文件?br /><br />PipedOutputStream:道输出是指一个通讯道的发送端?一个线E通过道输出发送数据,<br />而另一个线E通过道输入读取数据,q样可实C个线E间的通讯?br /><br />PipedOutputStream() 创徏一个管道输出流Q它q未与一个管道输入流q接?<br />PipedOutputStream(PipedInputStream) 创徏一个管道输出流Q它已连接到一个管道输入流?br /><br /><br />以字Wؓ导向的stream Reader/Writer</p> <p>以Unicode字符为导向的streamQ表CZUnicode字符为单位从stream中读取或往stream 中写入信息?br />Reader/Writer 为abstactc?br />以Unicode字符为导向的stream包括下面几种cdQ?</p> <p>Q- Reader</p> <p>1) CharArrayReaderQ与ByteArrayInputStream对应 <br />CharArrayReader(char[]) 用指定字W数l创Z?CharArrayReader?br />CharArrayReader(char[], int, int) 用指定字W数l创Z?CharArrayReader?br /><br />2) StringReaderQ与StringBufferInputStream对应 <br />StringReader(String) 创徏一新的串读取者?br />3) FileReaderQ与FileInputStream对应 </p> <p>4) PipedReaderQ与PipedInputStream对应 </p> <p>Q- Writer</p> <p>1) CharArrayWriteQ与ByteArrayOutputStream对应 <br />2) StringWriteQ无与之对应的以字节为导向的stream <br />3) FileWriteQ与FileOutputStream对应 <br />4) PipedWriteQ与PipedOutputStream对应 </p> <p>两种不现导向的stream之间的{?br />InputStreamReader和OutputStreamReaderQ把一个以字节为导向的stream转换成一个以字符为导向的stream?br />一?InputStreamReader cL从字节流到字W流的桥梁:它读入字节,q根据指定的~码方式Q将之{换ؓ字符?br />使用的编码方式可能由名称指定Q或q_可接受的~省~码方式?br /><br />InputStreamReader ?read() Ҏ之一的每ơ调用,可能促从基本字节输入流中读取一个或多个字节?br />Z辑ֈ更高效率Q考虑?BufferedReader 装 InputStreamReaderQ?br />BufferedReader in = new BufferedReader(new InputStreamReader(System.in));<br /><br />InputStreamReader(InputStream) 用缺省的字符~码方式Q创Z?InputStreamReader?<br />InputStreamReader(InputStream, String) 用已命名的字W编码方式,创徏一?InputStreamReader?br /><br />OutputStreamWriter 多个字W写入到一个输出流Q根据指定的字符~码多个字W{换ؓ字节?<br />每个 OutputStreamWriter 合ƈ它自q CharToByteConverter, 因而是从字W流到字节流的桥梁?br /><br />FilterInputStream、RandomAccessFile 见例子?br />ObjectInputStream ?ObjectOutputStream见另外blog?/p> <p><br />Java IO的一般用原则:</p> <p>一、按数据来源Q去向)分类Q?br />1、是文gQ?FileInputStream, FileOutputStream, FileReader, FileWriter<br />2、是byte[]QByteArrayInputStream, ByteArrayOutputStream<br />3、是Char[]: CharArrayReader, CharArrayWriter<br />4、是String: StringBufferInputStream, StringReader, StringWriter<br />5、网l数据流QInputStream, OutputStream, Reader, Writer</p> <p>二、按是否格式化输出分Q?br />1、要格式化输出:PrintStream, PrintWriter</p> <p>三、按是否要缓冲分Q?br />1、要~冲QBufferedInputStream, BufferedOutputStream, BufferedReader, BufferedWriter</p> <p>四、按数据格式分:<br />1、二q制格式Q只要不能确定是U文本的Q? InputStream, OutputStream及其所有带Streaml束的子c?br />2、纯文本格式Q含U英文与汉字或其他编码方式)QReader, Writer及其所有带Reader, Writer的子c?/p> <p>五、按输入输出分:<br />1、输入:Reader, InputStreamcd的子c?br />2、输出:Writer, OutputStreamcd的子c?/p> <p>六、特D需要:<br />1、从Stream到Reader,Writer的{换类QInputStreamReader, OutputStreamWriter<br />2、对象输入输出:ObjectInputStream, ObjectOutputStream<br />3、进E间通信QPipeInputStream, PipeOutputStream, PipeReader, PipeWriter<br />4、合q输入:SequenceInputStream<br />5、更Ҏ的需要:PushbackInputStream, PushbackReader, LineNumberInputStream, LineNumberReader</p> <p>军_使用哪个cM及它的构造进E的一般准则如下(不考虑Ҏ需要)Q?br />首先Q考虑最原始的数据格式是什么: 原则?br />W二Q是输入q是输出Q原则五<br />W三Q是否需要{换流Q原则六W??br />W四Q数据来源(dQ是什么:原则一<br />W五Q是否要~冲Q原则三 Q特别注明:一定要注意的是readLine()是否有定义,有什么比read, write更特D的输入或输出方法)<br />W六Q是否要格式化输出:原则?/p> <br/> <span style="color:red;"> <a style="color:red;">本文的讨Z很精彩,览讨论>></a> </span> <br/><br/><br/> <span style="color:#E28822;">JavaEye推荐</span> <br/> <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线Q有Oracle最新文章,重要下蝲及知识库{精彩内容,Ƣ迎讉K?/span></a></li><li><a href='/adverts/92' target='_blank'>立刻报名Q免费获取门,参加SOA技术论?q州6?9?</a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐|站诚聘Java、PHP和C++工程?/span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软g研发工程?/span></a></li></ul> <br/><br/><br/> <br>文章来源:<a >http://tianshi0253.javaeye.com/blog/204576</a><img src ="http://www.aygfsteel.com/tianshi0253/aggbug/209775.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/tianshi0253/" target="_blank">姚文?/a> 2008-06-17 09:44 <a href="http://www.aygfsteel.com/tianshi0253/articles/209775.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]java中的iopȝȝ.Q{Q?/title><link>http://www.aygfsteel.com/tianshi0253/archive/2008/06/17/209755.html</link><dc:creator>姚文?/dc:creator><author>姚文?/author><pubDate>Tue, 17 Jun 2008 01:44:00 GMT</pubDate><guid>http://www.aygfsteel.com/tianshi0253/archive/2008/06/17/209755.html</guid><wfw:comment>http://www.aygfsteel.com/tianshi0253/comments/209755.html</wfw:comment><comments>http://www.aygfsteel.com/tianshi0253/archive/2008/06/17/209755.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/tianshi0253/comments/commentRss/209755.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/tianshi0253/services/trackbacks/209755.html</trackback:ping><description><![CDATA[ <br/> 作? <a >tianshi0253</a>  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/204576</a>  发表旉: 2008q?6?7? <br/><br/> 声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任! <br/><br/> <p>java中的io中的Qinput/outputQstream无非是包括Z字符的stream、基于字节的stream和把字节导向的stream转换<br />字符为导向的stream的stream。(很难理解么?Q?br />以字节ؓ导向的stream------InputStream/OutputStream<br />InputStream ?OutputStream是两个abstactc,对于字节为导向的stream都扩展这两个鸡肋Q基c^_^Q?<br />--InputStream<br />ByteArrayInputStream -- 把内存中的一个缓冲区作ؓInputStream使用.<br /><br />construct---ByteArrayInputStream(byte[])创徏一个新字节数组输入,它从指定字节数组中读取数据?br />---ByteArrayInputStream(byte[], int, int) 创徏一个新字节数组输入,它从指定字节数组中读取数据?br />---mark::该字节数l未被复制?br /><br />StringBufferInputStream -- 把一个String对象作ؓInputStream .<br />注释Q不推荐使用 StringBufferInputStream Ҏ?此类不能字W正的转换为字节?br />?JDK 1.1 版中的类|从一个串创徏一个流的最x法是采用 StringReader cR?<br /><br />construct---StringBufferInputStream(String) 据指定串创徏一个读取数据的输入串?br /><br />FileInputStream -- 把一个文件作为InputStreamQ实现对文g的读取操?<br /><br />construct---FileInputStream(File) 创徏一个输入文件流Q从指定?File 对象d数据?br />---FileInputStream(FileDescriptor) 创徏一个输入文件流Q从指定的文件描q器d数据?br />---FileInputStream(String) 创徏一个输入文件流Q从指定名称的文件读取数据?br /><br />method ---- read() 从当前输入流中读取一字节数据?<br />read(byte[]) 当前输入流?b.length 个字节数据读C个字节数l中?<br />read(byte[], int, int) 输入流?len 个字节数据读入一个字节数l中?br /><br />PipedInputStreamQ实Cpipe的概念,主要在线E中使用. 道输入是指一个通讯道的接收端?br />一个线E通过道输出发送数据,而另一个线E通过道输入读取数据,<br />q样可实C个线E间的通讯?br /><br />PipedInputStream() 创徏一个管道输入流Q它q未与一个管道输出流q接?<br />PipedInputStream(PipedOutputStream) 创徏一个管道输入流, 它已q接C个管道输出流?<br /><br />SequenceInputStreamQ把多个InputStream合ƈZ个InputStream .“序列输入?rdquo;cd许应用程序把几个输入连l地合ƈhQ?br />q且使它们像单个输入一样出现。每个输入流依次被读取,直到到达该流的末?br />然后“序列输入?rdquo;cd闭这个流q自动地切换C一个输入流?<br />SequenceInputStream(Enumeration) 创徏一个新的序列输入流Qƈ用指定的输入的枚D值初始化它?<br />SequenceInputStream(InputStream, InputStream) 创徏一个新的序列输入流Q初始化为首?读输入流 s1, 然后读输入流 s2?br /><br />--OutputSteam<br /><br />ByteArrayOutputStreamQ把信息存入内存中的一个缓冲区?该类实现一个以字节数组形式写入数据的输出流?br />当数据写入缓冲区Ӟ它自动扩大。用 toByteArray() ?toString() 能检索数据?<br /><br />construct --- ByteArrayOutputStream() 创徏一个新的字节数l输出流?br />--- ByteArrayOutputStream() 创徏一个新的字节数l输出流?<br />--- ByteArrayOutputStream(int) 创徏一个新的字节数l输出流Qƈ带有指定大小字节的缓冲区定w?<br />toString(String) Ҏ指定字符~码缓冲区内容转换为字W串Qƈ字节{换ؓ字符?<br />write(byte[], int, int) 指定字节数l中从偏U量 off 开始的 len 个字节写入该字节数组输出?<br />write(int) 指定字节写入该字节数组输出?<br />writeTo(OutputStream) ?out.write(buf, 0, count) 调用输出的写方法将该字节数l输出流的全部内容写入指定的输出参数?<br /><br />FileOutputStream:文g输出是?File ?FileDescriptor 输出数据的一个输出流?br /><br />FileOutputStream(File) 创徏一个文件输出流Q向指定?File 对象输出数据?<br />FileOutputStream(FileDescriptor) 创徏一个文件输出流Q向指定的文件描q器输出数据?<br />FileOutputStream(String) 创徏一个文件输出流Q向指定名称的文件输出数据?<br />FileOutputStream(String, boolean) 用指定系l的文g名,创徏一个输出文件?br /><br />PipedOutputStream:道输出是指一个通讯道的发送端?一个线E通过道输出发送数据,<br />而另一个线E通过道输入读取数据,q样可实C个线E间的通讯?br /><br />PipedOutputStream() 创徏一个管道输出流Q它q未与一个管道输入流q接?<br />PipedOutputStream(PipedInputStream) 创徏一个管道输出流Q它已连接到一个管道输入流?br /><br /><br />以字Wؓ导向的stream Reader/Writer</p> <p>以Unicode字符为导向的streamQ表CZUnicode字符为单位从stream中读取或往stream 中写入信息?br />Reader/Writer 为abstactc?br />以Unicode字符为导向的stream包括下面几种cdQ?</p> <p>Q- Reader</p> <p>1) CharArrayReaderQ与ByteArrayInputStream对应 <br />CharArrayReader(char[]) 用指定字W数l创Z?CharArrayReader?br />CharArrayReader(char[], int, int) 用指定字W数l创Z?CharArrayReader?br /><br />2) StringReaderQ与StringBufferInputStream对应 <br />StringReader(String) 创徏一新的串读取者?br />3) FileReaderQ与FileInputStream对应 </p> <p>4) PipedReaderQ与PipedInputStream对应 </p> <p>Q- Writer</p> <p>1) CharArrayWriteQ与ByteArrayOutputStream对应 <br />2) StringWriteQ无与之对应的以字节为导向的stream <br />3) FileWriteQ与FileOutputStream对应 <br />4) PipedWriteQ与PipedOutputStream对应 </p> <p>两种不现导向的stream之间的{?br />InputStreamReader和OutputStreamReaderQ把一个以字节为导向的stream转换成一个以字符为导向的stream?br />一?InputStreamReader cL从字节流到字W流的桥梁:它读入字节,q根据指定的~码方式Q将之{换ؓ字符?br />使用的编码方式可能由名称指定Q或q_可接受的~省~码方式?br /><br />InputStreamReader ?read() Ҏ之一的每ơ调用,可能促从基本字节输入流中读取一个或多个字节?br />Z辑ֈ更高效率Q考虑?BufferedReader 装 InputStreamReaderQ?br />BufferedReader in = new BufferedReader(new InputStreamReader(System.in));<br /><br />InputStreamReader(InputStream) 用缺省的字符~码方式Q创Z?InputStreamReader?<br />InputStreamReader(InputStream, String) 用已命名的字W编码方式,创徏一?InputStreamReader?br /><br />OutputStreamWriter 多个字W写入到一个输出流Q根据指定的字符~码多个字W{换ؓ字节?<br />每个 OutputStreamWriter 合ƈ它自q CharToByteConverter, 因而是从字W流到字节流的桥梁?br /><br />FilterInputStream、RandomAccessFile 见例子?br />ObjectInputStream ?ObjectOutputStream见另外blog?/p> <p><br />Java IO的一般用原则:</p> <p>一、按数据来源Q去向)分类Q?br />1、是文gQ?FileInputStream, FileOutputStream, FileReader, FileWriter<br />2、是byte[]QByteArrayInputStream, ByteArrayOutputStream<br />3、是Char[]: CharArrayReader, CharArrayWriter<br />4、是String: StringBufferInputStream, StringReader, StringWriter<br />5、网l数据流QInputStream, OutputStream, Reader, Writer</p> <p>二、按是否格式化输出分Q?br />1、要格式化输出:PrintStream, PrintWriter</p> <p>三、按是否要缓冲分Q?br />1、要~冲QBufferedInputStream, BufferedOutputStream, BufferedReader, BufferedWriter</p> <p>四、按数据格式分:<br />1、二q制格式Q只要不能确定是U文本的Q? InputStream, OutputStream及其所有带Streaml束的子c?br />2、纯文本格式Q含U英文与汉字或其他编码方式)QReader, Writer及其所有带Reader, Writer的子c?/p> <p>五、按输入输出分:<br />1、输入:Reader, InputStreamcd的子c?br />2、输出:Writer, OutputStreamcd的子c?/p> <p>六、特D需要:<br />1、从Stream到Reader,Writer的{换类QInputStreamReader, OutputStreamWriter<br />2、对象输入输出:ObjectInputStream, ObjectOutputStream<br />3、进E间通信QPipeInputStream, PipeOutputStream, PipeReader, PipeWriter<br />4、合q输入:SequenceInputStream<br />5、更Ҏ的需要:PushbackInputStream, PushbackReader, LineNumberInputStream, LineNumberReader</p> <p>军_使用哪个cM及它的构造进E的一般准则如下(不考虑Ҏ需要)Q?br />首先Q考虑最原始的数据格式是什么: 原则?br />W二Q是输入q是输出Q原则五<br />W三Q是否需要{换流Q原则六W??br />W四Q数据来源(dQ是什么:原则一<br />W五Q是否要~冲Q原则三 Q特别注明:一定要注意的是readLine()是否有定义,有什么比read, write更特D的输入或输出方法)<br />W六Q是否要格式化输出:原则?/p> <br/> <span style="color:red;"> <a style="color:red;">本文的讨Z很精彩,览讨论>></a> </span> <br/><br/><br/> <span style="color:#E28822;">JavaEye推荐</span> <br/> <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐|站诚聘Java、PHP和C++工程?/span></a></li><li><a href='/adverts/92' target='_blank'>立刻报名Q免费获取门,参加SOA技术论?q州6?9?</a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线Q有Oracle最新文章,重要下蝲及知识库{精彩内容,Ƣ迎讉K?/span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软g研发工程?/span></a></li></ul> <br/><br/><br/> <br>文章来源:<a >http://tianshi0253.javaeye.com/blog/204576</a><img src ="http://www.aygfsteel.com/tianshi0253/aggbug/209755.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/tianshi0253/" target="_blank">姚文?/a> 2008-06-17 09:44 <a href="http://www.aygfsteel.com/tianshi0253/archive/2008/06/17/209755.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]JAVA常用IO操作Q{Q?/title><link>http://www.aygfsteel.com/tianshi0253/archive/2008/06/17/209756.html</link><dc:creator>姚文?/dc:creator><author>姚文?/author><pubDate>Tue, 17 Jun 2008 01:40:00 GMT</pubDate><guid>http://www.aygfsteel.com/tianshi0253/archive/2008/06/17/209756.html</guid><wfw:comment>http://www.aygfsteel.com/tianshi0253/comments/209756.html</wfw:comment><comments>http://www.aygfsteel.com/tianshi0253/archive/2008/06/17/209756.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/tianshi0253/comments/commentRss/209756.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/tianshi0253/services/trackbacks/209756.html</trackback:ping><description><![CDATA[ <br/> 作? <a >tianshi0253</a>  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/204572</a>  发表旉: 2008q?6?7? <br/><br/> 声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任! <br/><br/> <pre name="code" class="java">package com.syj.util; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.io.StringReader; import java.util.Arrays; /** * <p> * Title:IO工具c? * </p> * * <p> * Description:常用的IO操作装 * </p> * * <p> * Copyright: 转蝲h明出处http://blog.csdn.net/sunyujia/ * </p> * * @author 孙钰? * @main sunyujia@yahoo.cn * @date Jun 15, 2008 4:37:58 PM */ public class IOUtil { /** * ~冲区大?1MB */ private static final int BUFFER_SIZE = 1024 * 1024; /** * * Description: 输入流输出到输出流 * * @param in * 输入? * @param out * 输出? * @param bufferSize * ~冲区大? * @throws IOException * @mail sunyujia@yahoo.cn * @sinceQJun 15, 2008 5:57:24 PM */ public static void in2OutStream(InputStream in, OutputStream out, int bufferSize) throws IOException { byte[] buffer = new byte[bufferSize];// ~冲? for (int bytesRead = 0; (bytesRead = in.read(buffer)) != -1;) { out.write(buffer, 0, bytesRead); Arrays.fill(buffer, (byte) 0); } } /** * * Description: d文gq回字节数组? * * @param file * 文g * @return 字节数组? * @mail sunyujia@yahoo.cn * @sinceQJun 15, 2008 4:52:41 PM */ public static ByteArrayOutputStream readFileToByteStream(File file) throws IOException { FileInputStream fis = null; ByteArrayOutputStream bos = null; try { fis = new FileInputStream(file); bos = new ByteArrayOutputStream(); in2OutStream(fis, bos, BUFFER_SIZE); } finally { if (fis != null) fis.close(); } return bos; } /** * * Description:d文gq回字节数组 * * @param file * 文g * @return 字节数组 * @throws IOException * @mail sunyujia@yahoo.cn * @sinceQJun 15, 2008 5:38:50 PM */ public static byte[] readFileToByteArray(File file) throws IOException { ByteArrayOutputStream bos = null; try { bos = readFileToByteStream(file); } finally { if (bos != null) bos.close(); } return bos.toByteArray(); } /** * * Description:d文g内容 * * @param file * 文g * @return String内容 * @throws IOException * @mail sunyujia@yahoo.cn * @sinceQJun 15, 2008 5:46:32 PM */ public static String readFileToString(File file) throws IOException { StringBuffer sb = null; BufferedReader in = null; try { in = new BufferedReader(new FileReader(file)); sb = new StringBuffer(); for (String line; (line = in.readLine()) != null;) { sb.append(line + "\r\n"); } } finally { if (in != null) in.close(); } return sb.toString(); } /** * * Description:复制文g * * @param src * 源文? * @param dest * 目标文g * @param cover * 是否覆盖 * @throws IOException * @mail sunyujia@yahoo.cn * @sinceQJun 15, 2008 6:08:28 PM */ public static void copyFile(File src, File dest, boolean cover) throws IOException { FileInputStream in = null; FileOutputStream out = null; try { if (!dest.exists()) { dest.createNewFile(); } else if (dest.exists() && cover) { dest.delete(); dest.createNewFile(); } else { return; } in = new FileInputStream(src); out = new FileOutputStream(dest); in2OutStream(in, out, BUFFER_SIZE); } finally { try { if (in != null) in.close(); } finally { if (out != null) out.close(); } } } /** * * Description:写文? * * @param file * 文g * @param str * 内容 * @throws IOException * @mail sunyujia@yahoo.cn * @sinceQJun 15, 2008 6:17:24 PM */ public static void writeFile(File file, String str) throws IOException { PrintWriter out = null; BufferedReader in = null; try { if (!file.exists()) file.createNewFile(); in = new BufferedReader(new StringReader(str)); out = new PrintWriter(new BufferedWriter(new FileWriter(file))); for (String line; (line = in.readLine()) != null;) { out.println(line); } } finally { try { if (in != null) in.close(); } finally { if (out != null) out.close(); } } } /** * * Description:从控制台d一串字W串 * * @return d的字W串 * @throws IOException * @mail sunyujia@yahoo.cn * @sinceQJun 15, 2008 6:42:29 PM */ public static String readStringFromSystemIn() throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); try { return br.readLine(); } finally { if (br != null) br.close(); } } /** * * Description:当ObjectInputStream对象调用 * readObject();?会从ByteArrayInputStream中反序列化出的对象 * * * @param bi * @return * @throws IOException * @mail sunyujia@yahoo.cn * @sinceQJun 15, 2008 7:07:53 PM */ public static ObjectInputStream buildObjectInputStream( ByteArrayInputStream bi) throws IOException { return new ObjectInputStream(bi); } /** * * Description:当ObjectOutputStream对象调用 * writeObject(o);?o对象会序列化到ByteArrayOutputStream中? * * @param bos * 字节数组? * @return 对象输出? * @throws IOException * @mail sunyujia@yahoo.cn * @sinceQJun 15, 2008 7:06:00 PM */ public static ObjectOutputStream buildObjectOutputStream( ByteArrayOutputStream bos) throws IOException { return new ObjectOutputStream(bos); } public static BufferedReader buildBufferedReader(String str) { return new BufferedReader(new StringReader(str)); } public static ByteArrayInputStream buildByteArrayInputStream(String str) { return new ByteArrayInputStream(str.getBytes()); } public static ByteArrayInputStream buildByteArrayInputStream(byte[] bt) { return new ByteArrayInputStream(bt); } public static void main(String[] args) throws Exception { byte[] bootFileBytes = IOUtil.readFileToByteArray(new File( "C:\\boot.ini")); System.out.println(new String(bootFileBytes)); String bootFileStr = readFileToString(new File("C:\\boot.ini")); System.out.println(bootFileStr); System.out.println(new String(bootFileBytes).equals(bootFileStr)); IOUtil.copyFile(new File("C:\\boot.ini"), new File("C:\\boot1.ini"), true); IOUtil.writeFile(new File("C:\\boot2.ini"), bootFileStr); ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream oos = IOUtil.buildObjectOutputStream(bos); oos.writeObject(new String("abcd")); ObjectInputStream ois = IOUtil.buildObjectInputStream(IOUtil .buildByteArrayInputStream(bos.toByteArray())); System.out.println(ois.readObject()); System.out.println(IOUtil.readStringFromSystemIn()); } } </pre> <p> </p> <br/> <span style="color:red;"> <a style="color:red;">本文的讨Z很精彩,览讨论>></a> </span> <br/><br/><br/> <span style="color:#E28822;">JavaEye推荐</span> <br/> <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐|站诚聘Java、PHP和C++工程?/span></a></li><li><a href='/adverts/92' target='_blank'>立刻报名Q免费获取门,参加SOA技术论?q州6?9?</a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线Q有Oracle最新文章,重要下蝲及知识库{精彩内容,Ƣ迎讉K?/span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软g研发工程?/span></a></li></ul> <br/><br/><br/> <br>文章来源:<a >http://tianshi0253.javaeye.com/blog/204572</a><img src ="http://www.aygfsteel.com/tianshi0253/aggbug/209756.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/tianshi0253/" target="_blank">姚文?/a> 2008-06-17 09:40 <a href="http://www.aygfsteel.com/tianshi0253/archive/2008/06/17/209756.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]JAVA常用IO操作Q{Q?/title><link>http://www.aygfsteel.com/tianshi0253/articles/209776.html</link><dc:creator>姚文?/dc:creator><author>姚文?/author><pubDate>Tue, 17 Jun 2008 01:40:00 GMT</pubDate><guid>http://www.aygfsteel.com/tianshi0253/articles/209776.html</guid><wfw:comment>http://www.aygfsteel.com/tianshi0253/comments/209776.html</wfw:comment><comments>http://www.aygfsteel.com/tianshi0253/articles/209776.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/tianshi0253/comments/commentRss/209776.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/tianshi0253/services/trackbacks/209776.html</trackback:ping><description><![CDATA[ <br/> 作? <a >tianshi0253</a>  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/204572</a>  发表旉: 2008q?6?7? <br/><br/> 声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任! <br/><br/> <pre name="code" class="java">package com.syj.util; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.io.StringReader; import java.util.Arrays; /** * <p> * Title:IO工具c? * </p> * * <p> * Description:常用的IO操作装 * </p> * * <p> * Copyright: 转蝲h明出处http://blog.csdn.net/sunyujia/ * </p> * * @author 孙钰? * @main sunyujia@yahoo.cn * @date Jun 15, 2008 4:37:58 PM */ public class IOUtil { /** * ~冲区大?1MB */ private static final int BUFFER_SIZE = 1024 * 1024; /** * * Description: 输入流输出到输出流 * * @param in * 输入? * @param out * 输出? * @param bufferSize * ~冲区大? * @throws IOException * @mail sunyujia@yahoo.cn * @sinceQJun 15, 2008 5:57:24 PM */ public static void in2OutStream(InputStream in, OutputStream out, int bufferSize) throws IOException { byte[] buffer = new byte[bufferSize];// ~冲? for (int bytesRead = 0; (bytesRead = in.read(buffer)) != -1;) { out.write(buffer, 0, bytesRead); Arrays.fill(buffer, (byte) 0); } } /** * * Description: d文gq回字节数组? * * @param file * 文g * @return 字节数组? * @mail sunyujia@yahoo.cn * @sinceQJun 15, 2008 4:52:41 PM */ public static ByteArrayOutputStream readFileToByteStream(File file) throws IOException { FileInputStream fis = null; ByteArrayOutputStream bos = null; try { fis = new FileInputStream(file); bos = new ByteArrayOutputStream(); in2OutStream(fis, bos, BUFFER_SIZE); } finally { if (fis != null) fis.close(); } return bos; } /** * * Description:d文gq回字节数组 * * @param file * 文g * @return 字节数组 * @throws IOException * @mail sunyujia@yahoo.cn * @sinceQJun 15, 2008 5:38:50 PM */ public static byte[] readFileToByteArray(File file) throws IOException { ByteArrayOutputStream bos = null; try { bos = readFileToByteStream(file); } finally { if (bos != null) bos.close(); } return bos.toByteArray(); } /** * * Description:d文g内容 * * @param file * 文g * @return String内容 * @throws IOException * @mail sunyujia@yahoo.cn * @sinceQJun 15, 2008 5:46:32 PM */ public static String readFileToString(File file) throws IOException { StringBuffer sb = null; BufferedReader in = null; try { in = new BufferedReader(new FileReader(file)); sb = new StringBuffer(); for (String line; (line = in.readLine()) != null;) { sb.append(line + "\r\n"); } } finally { if (in != null) in.close(); } return sb.toString(); } /** * * Description:复制文g * * @param src * 源文? * @param dest * 目标文g * @param cover * 是否覆盖 * @throws IOException * @mail sunyujia@yahoo.cn * @sinceQJun 15, 2008 6:08:28 PM */ public static void copyFile(File src, File dest, boolean cover) throws IOException { FileInputStream in = null; FileOutputStream out = null; try { if (!dest.exists()) { dest.createNewFile(); } else if (dest.exists() && cover) { dest.delete(); dest.createNewFile(); } else { return; } in = new FileInputStream(src); out = new FileOutputStream(dest); in2OutStream(in, out, BUFFER_SIZE); } finally { try { if (in != null) in.close(); } finally { if (out != null) out.close(); } } } /** * * Description:写文? * * @param file * 文g * @param str * 内容 * @throws IOException * @mail sunyujia@yahoo.cn * @sinceQJun 15, 2008 6:17:24 PM */ public static void writeFile(File file, String str) throws IOException { PrintWriter out = null; BufferedReader in = null; try { if (!file.exists()) file.createNewFile(); in = new BufferedReader(new StringReader(str)); out = new PrintWriter(new BufferedWriter(new FileWriter(file))); for (String line; (line = in.readLine()) != null;) { out.println(line); } } finally { try { if (in != null) in.close(); } finally { if (out != null) out.close(); } } } /** * * Description:从控制台d一串字W串 * * @return d的字W串 * @throws IOException * @mail sunyujia@yahoo.cn * @sinceQJun 15, 2008 6:42:29 PM */ public static String readStringFromSystemIn() throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); try { return br.readLine(); } finally { if (br != null) br.close(); } } /** * * Description:当ObjectInputStream对象调用 * readObject();?会从ByteArrayInputStream中反序列化出的对象 * * * @param bi * @return * @throws IOException * @mail sunyujia@yahoo.cn * @sinceQJun 15, 2008 7:07:53 PM */ public static ObjectInputStream buildObjectInputStream( ByteArrayInputStream bi) throws IOException { return new ObjectInputStream(bi); } /** * * Description:当ObjectOutputStream对象调用 * writeObject(o);?o对象会序列化到ByteArrayOutputStream中? * * @param bos * 字节数组? * @return 对象输出? * @throws IOException * @mail sunyujia@yahoo.cn * @sinceQJun 15, 2008 7:06:00 PM */ public static ObjectOutputStream buildObjectOutputStream( ByteArrayOutputStream bos) throws IOException { return new ObjectOutputStream(bos); } public static BufferedReader buildBufferedReader(String str) { return new BufferedReader(new StringReader(str)); } public static ByteArrayInputStream buildByteArrayInputStream(String str) { return new ByteArrayInputStream(str.getBytes()); } public static ByteArrayInputStream buildByteArrayInputStream(byte[] bt) { return new ByteArrayInputStream(bt); } public static void main(String[] args) throws Exception { byte[] bootFileBytes = IOUtil.readFileToByteArray(new File( "C:\\boot.ini")); System.out.println(new String(bootFileBytes)); String bootFileStr = readFileToString(new File("C:\\boot.ini")); System.out.println(bootFileStr); System.out.println(new String(bootFileBytes).equals(bootFileStr)); IOUtil.copyFile(new File("C:\\boot.ini"), new File("C:\\boot1.ini"), true); IOUtil.writeFile(new File("C:\\boot2.ini"), bootFileStr); ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream oos = IOUtil.buildObjectOutputStream(bos); oos.writeObject(new String("abcd")); ObjectInputStream ois = IOUtil.buildObjectInputStream(IOUtil .buildByteArrayInputStream(bos.toByteArray())); System.out.println(ois.readObject()); System.out.println(IOUtil.readStringFromSystemIn()); } } </pre> <p> </p> <br/> <span style="color:red;"> <a style="color:red;">本文的讨Z很精彩,览讨论>></a> </span> <br/><br/><br/> <span style="color:#E28822;">JavaEye推荐</span> <br/> <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软g研发工程?/span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线Q有Oracle最新文章,重要下蝲及知识库{精彩内容,Ƣ迎讉K?/span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐|站诚聘Java、PHP和C++工程?/span></a></li><li><a href='/adverts/92' target='_blank'>立刻报名Q免费获取门,参加SOA技术论?q州6?9?</a></li></ul> <br/><br/><br/> <br>文章来源:<a >http://tianshi0253.javaeye.com/blog/204572</a><img src ="http://www.aygfsteel.com/tianshi0253/aggbug/209776.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/tianshi0253/" target="_blank">姚文?/a> 2008-06-17 09:40 <a href="http://www.aygfsteel.com/tianshi0253/articles/209776.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]递归昄文g或文件夹Qƈ输出x个文?/title><link>http://www.aygfsteel.com/tianshi0253/articles/209777.html</link><dc:creator>姚文?/dc:creator><author>姚文?/author><pubDate>Sat, 14 Jun 2008 20:04:00 GMT</pubDate><guid>http://www.aygfsteel.com/tianshi0253/articles/209777.html</guid><wfw:comment>http://www.aygfsteel.com/tianshi0253/comments/209777.html</wfw:comment><comments>http://www.aygfsteel.com/tianshi0253/articles/209777.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/tianshi0253/comments/commentRss/209777.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/tianshi0253/services/trackbacks/209777.html</trackback:ping><description><![CDATA[ <br/> 作? <a >tianshi0253</a>  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/203419</a>  发表旉: 2008q?6?5? <br/><br/> 声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任! <br/><br/> <p>包括四个文gQ一个具体实现类Q一个接口类Q一个工厂类Q一个调用类?/p> <p> FileSeacher.java</p> <pre name="code" class="java">package com.jqqd.ywc; import java.io.IOException; public interface FileSeacher { void seacherFile(String s)throws IOException; void seacherFolder(String s); } </pre> <p> </p> <p> </p> <p>FileSeacherImpl.java</p> <pre name="code" class="java">package com.jqqd.ywc; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class FileSeacherImpl implements FileSeacher { static FileOutputStream outFile; static { try { outFile = new FileOutputStream("D:/seach_log.dat"); } catch (FileNotFoundException e) { e.printStackTrace(); } } public void seacherFile(String s) throws IOException { File dir = new File(s); if (dir.exists()) { if (dir.isFile()) { System.out.println(s + " is an file!"); writeToFile(s); } else { File[] dirList = dir.listFiles(); for (int i = 0; i < dirList.length; i++) { if (dirList[i].isFile()) { System.out.println(dirList[i] + " is an file!"); writeToFile(dirList[i].toString() + "\n"); } else { seacherFile(dirList[i].toString()); } } } } else { System.out.println(s + "is not existed!"); } } private void writeToFile(String content) { try { outFile.write(content.getBytes()); } catch (IOException e) { e.printStackTrace(); } } public void seacherFolder(String s) { // TODO Auto-generated method stub File dir = new File(s); if (dir.exists()) { if (dir.isFile()) { System.out.println(s + " is an file!"); } else { writeToFile(s+ " is an folder\n"); File[] dirList = dir.listFiles(); for (int i = 0; i < dirList.length; i++) { if (dirList[i].isFile()) { System.out.println(dirList[i].toString() + " is an file!"); } else { writeToFile(dirList[i].toString() + " is an folder\n"); seacherFolder(dirList[i].toString()); } } } } } }</pre> <p> </p> <p> </p> <p> Factory.java</p> <pre name="code" class="java">package com.jqqd.ywc; import java.io.IOException; import com.jqqd.ywc.FileSeacherImpl; public class Factory { public static void seacherFile(String s)throws IOException { new FileSeacherImpl().seacherFile(s); } }</pre> <p> UseFactory.java</p> <pre name="code" class="java">package com.jqqd.ywc; import java.io.IOException; import com.jqqd.ywc.Factory; public class useFachory { public static void main(String[] args) { String s = "F:/"; try { Factory.seacherFile(s); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } </pre> <p> </p> <p> </p> <br/> <span style="color:red;"> <a style="color:red;">本文的讨Z很精彩,览讨论>></a> </span> <br/><br/><br/> <span style="color:#E28822;">JavaEye推荐</span> <br/> <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐|站诚聘Java、PHP和C++工程?/span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线Q有Oracle最新文章,重要下蝲及知识库{精彩内容,Ƣ迎讉K?/span></a></li><li><a href='/adverts/92' target='_blank'>立刻报名Q免费获取门,参加SOA技术论?q州6?9?</a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软g研发工程?/span></a></li></ul> <br/><br/><br/> <br>文章来源:<a >http://tianshi0253.javaeye.com/blog/203419</a><img src ="http://www.aygfsteel.com/tianshi0253/aggbug/209777.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/tianshi0253/" target="_blank">姚文?/a> 2008-06-15 04:04 <a href="http://www.aygfsteel.com/tianshi0253/articles/209777.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]递归昄文g或文件夹Qƈ输出x个文?/title><link>http://www.aygfsteel.com/tianshi0253/archive/2008/06/15/209757.html</link><dc:creator>姚文?/dc:creator><author>姚文?/author><pubDate>Sat, 14 Jun 2008 20:04:00 GMT</pubDate><guid>http://www.aygfsteel.com/tianshi0253/archive/2008/06/15/209757.html</guid><wfw:comment>http://www.aygfsteel.com/tianshi0253/comments/209757.html</wfw:comment><comments>http://www.aygfsteel.com/tianshi0253/archive/2008/06/15/209757.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/tianshi0253/comments/commentRss/209757.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/tianshi0253/services/trackbacks/209757.html</trackback:ping><description><![CDATA[ <br/> 作? <a >tianshi0253</a>  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/203419</a>  发表旉: 2008q?6?5? <br/><br/> 声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任! <br/><br/> <p>包括四个文gQ一个具体实现类Q一个接口类Q一个工厂类Q一个调用类?/p> <p> FileSeacher.java</p> <pre name="code" class="java">package com.jqqd.ywc; import java.io.IOException; public interface FileSeacher { void seacherFile(String s)throws IOException; void seacherFolder(String s); } </pre> <p> </p> <p> </p> <p>FileSeacherImpl.java</p> <pre name="code" class="java">package com.jqqd.ywc; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class FileSeacherImpl implements FileSeacher { static FileOutputStream outFile; static { try { outFile = new FileOutputStream("D:/seach_log.dat"); } catch (FileNotFoundException e) { e.printStackTrace(); } } public void seacherFile(String s) throws IOException { File dir = new File(s); if (dir.exists()) { if (dir.isFile()) { System.out.println(s + " is an file!"); writeToFile(s); } else { File[] dirList = dir.listFiles(); for (int i = 0; i < dirList.length; i++) { if (dirList[i].isFile()) { System.out.println(dirList[i] + " is an file!"); writeToFile(dirList[i].toString() + "\n"); } else { seacherFile(dirList[i].toString()); } } } } else { System.out.println(s + "is not existed!"); } } private void writeToFile(String content) { try { outFile.write(content.getBytes()); } catch (IOException e) { e.printStackTrace(); } } public void seacherFolder(String s) { // TODO Auto-generated method stub File dir = new File(s); if (dir.exists()) { if (dir.isFile()) { System.out.println(s + " is an file!"); } else { writeToFile(s+ " is an folder\n"); File[] dirList = dir.listFiles(); for (int i = 0; i < dirList.length; i++) { if (dirList[i].isFile()) { System.out.println(dirList[i].toString() + " is an file!"); } else { writeToFile(dirList[i].toString() + " is an folder\n"); seacherFolder(dirList[i].toString()); } } } } } }</pre> <p> </p> <p> </p> <p> Factory.java</p> <pre name="code" class="java">package com.jqqd.ywc; import java.io.IOException; import com.jqqd.ywc.FileSeacherImpl; public class Factory { public static void seacherFile(String s)throws IOException { new FileSeacherImpl().seacherFile(s); } }</pre> <p> UseFactory.java</p> <pre name="code" class="java">package com.jqqd.ywc; import java.io.IOException; import com.jqqd.ywc.Factory; public class useFachory { public static void main(String[] args) { String s = "F:/"; try { Factory.seacherFile(s); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } </pre> <p> </p> <p> </p> <br/> <span style="color:red;"> <a style="color:red;">本文的讨Z很精彩,览讨论>></a> </span> <br/><br/><br/> <span style="color:#E28822;">JavaEye推荐</span> <br/> <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软g研发工程?/span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线Q有Oracle最新文章,重要下蝲及知识库{精彩内容,Ƣ迎讉K?/span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐|站诚聘Java、PHP和C++工程?/span></a></li><li><a href='/adverts/92' target='_blank'>立刻报名Q免费获取门,参加SOA技术论?q州6?9?</a></li></ul> <br/><br/><br/> <br>文章来源:<a >http://tianshi0253.javaeye.com/blog/203419</a><img src ="http://www.aygfsteel.com/tianshi0253/aggbug/209757.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/tianshi0253/" target="_blank">姚文?/a> 2008-06-15 04:04 <a href="http://www.aygfsteel.com/tianshi0253/archive/2008/06/15/209757.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]递归Ҏ昄某文件夹下的所有文?/title><link>http://www.aygfsteel.com/tianshi0253/archive/2008/06/13/209758.html</link><dc:creator>姚文?/dc:creator><author>姚文?/author><pubDate>Fri, 13 Jun 2008 10:25:00 GMT</pubDate><guid>http://www.aygfsteel.com/tianshi0253/archive/2008/06/13/209758.html</guid><wfw:comment>http://www.aygfsteel.com/tianshi0253/comments/209758.html</wfw:comment><comments>http://www.aygfsteel.com/tianshi0253/archive/2008/06/13/209758.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/tianshi0253/comments/commentRss/209758.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/tianshi0253/services/trackbacks/209758.html</trackback:ping><description><![CDATA[ <br/> 作? <a >tianshi0253</a>  链接Q?a style="color:red;">http://tianshi0253.javaeye.com/blog/203076</a>  发表旉: 2008q?6?3? <br/><br/> 声明Q本文系JavaEye|站发布的原创博客文章,未经作者书面许可,严禁M|站转蝲本文Q否则必追I法律责任! <br/><br/> <pre name="code" class="java">package T01; import java.io.File; class DirList{ static void getDir(String strPath){ File f = new File(strPath); if (f.isDirectory()){ File file[] = f.listFiles(); for(int i=0;i<file.length;i++){ if (file[i].isDirectory()){ System.out.println("目录\t"+file[i].getPath()); getDir(file[i].getPath()); } if(file[i].isFile()){ System.out.println("文g\t"+file[i].getPath()); } } } } public static void main(String[] args) { String strPath = "C:\\"; getDir(strPath); } }</pre> <p> </p> <br/> <span style="color:red;"> <a style="color:red;">本文的讨Z很精彩,览讨论>></a> </span> <br/><br/><br/> <span style="color:#E28822;">JavaEye推荐</span> <br/> <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐|站诚聘Java、PHP和C++工程?/span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软g研发工程?/span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线Q有Oracle最新文章,重要下蝲及知识库{精彩内容,Ƣ迎讉K?/span></a></li><li><a href='/adverts/92' target='_blank'>立刻报名Q免费获取门,参加SOA技术论?q州6?9?</a></li></ul> <br/><br/><br/> <br>文章来源:<a >http://tianshi0253.javaeye.com/blog/203076</a><img src ="http://www.aygfsteel.com/tianshi0253/aggbug/209758.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/tianshi0253/" target="_blank">姚文?/a> 2008-06-13 18:25 <a href="http://www.aygfsteel.com/tianshi0253/archive/2008/06/13/209758.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">մ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">½</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ؼ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ֵ</a>| <a href="http://" target="_blank">ͼʲ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʹ</a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Զ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ǭ</a>| <a href="http://" target="_blank">ͼ</a>| <a href="http://" target="_blank">ʯ</a>| <a href="http://" target="_blank">̩</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ڰ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>