﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Kelven Cheung-随笔分类-Java</title><link>http://www.blogjava.net/zhangrenquan/category/6021.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 23 Apr 2007 02:16:55 GMT</lastBuildDate><pubDate>Mon, 23 Apr 2007 02:16:55 GMT</pubDate><ttl>60</ttl><item><title>JSP下载文件</title><link>http://www.blogjava.net/zhangrenquan/archive/2006/04/14/41116.html</link><dc:creator>kelven</dc:creator><author>kelven</author><pubDate>Fri, 14 Apr 2006 08:04:00 GMT</pubDate><guid>http://www.blogjava.net/zhangrenquan/archive/2006/04/14/41116.html</guid><wfw:comment>http://www.blogjava.net/zhangrenquan/comments/41116.html</wfw:comment><comments>http://www.blogjava.net/zhangrenquan/archive/2006/04/14/41116.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangrenquan/comments/commentRss/41116.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangrenquan/services/trackbacks/41116.html</trackback:ping><description><![CDATA[<p>&lt;%@ page import="java.io.*"%&gt;<br>&lt;%<br>String root=application.getRealPath("/");<br>String fileName=request.getParameter("fileName");<br>String filePath=request.getParameter("filePath");</p>
<p>response.setContentType("application/octet-stream");<br>response.setHeader("Content-Disposition",<br>"attachment; filename=\"" +fileName+ "\"");</p>
<p>try{ <br>java.io.OutputStream os = response.getOutputStream(); //不加此行将只能下载文本文件.下载jpg等就会出现打不开的现象.<br>java.io.FileInputStream fis = new java.io.FileInputStream(root+filePath); <br>byte[] b = new byte[1024]; <br>int i = 0; <br>while ( (i = fis.read(b)) &gt; 0 ) <br>{ <br>os.write(b, 0, i); <br>} </p>
<p>fis.close(); <br>os.flush(); <br>os.close(); <br>} <br>catch ( Exception e ) <br>{ <br>System.out.println ( "IOException." + e );<br>} <br>%&gt;</p>
<p>java.io.FileInputStream fis = new java.io.FileInputStream(文件的真实路径);<br>也可以<br><br>&lt;% <br>if (request.getParameter("fileUrl") != null) <br>{<br>String strFileUrl = request.getParameter("fileUrl");<br><br>//获取文件名（DealFile是自己写的一个处理文件的一个类）<br>DealFile dealFile = new DealFile(strFileUrl);<br>String filename = dealFile.getFileName();<br><br>response.setHeader("content-type","application/octet-stream");<br>response.setHeader("Content-Disposition","attachment;filename=\""+ filename+"\"");<br><br>BufferedInputStream bis = null;<br>BufferedOutputStream bos = null;<br>try <br>{<br>//从文件所在目录以流的方式读取文件<br>bis = new BufferedInputStream(new FileInputStream(getServletContext().getRealPath(strFileUrl)));<br><br>bos = new BufferedOutputStream(response.getOutputStream());<br><br>byte[] buff = new byte[2048];<br>int bytesRead;<br><br>while(-1 != (bytesRead = bis.read(buff, 0, buff.length))) <br>{<br>bos.write(buff,0,bytesRead);<br>}<br>bos.flush();<br>} <br>catch(final IOException e) <br>{<br>System.out.println ( "IOException." + e );<br>} <br>finally <br>{<br>if (bis != null)<br>bis.close();<br>if (bos != null)<br>bos.close();<br>}<br>return;<br>}<br>%&gt; <br></p><img src ="http://www.blogjava.net/zhangrenquan/aggbug/41116.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangrenquan/" target="_blank">kelven</a> 2006-04-14 16:04 <a href="http://www.blogjava.net/zhangrenquan/archive/2006/04/14/41116.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA开发者应该去的20个英文网站</title><link>http://www.blogjava.net/zhangrenquan/archive/2006/04/05/39375.html</link><dc:creator>kelven</dc:creator><author>kelven</author><pubDate>Wed, 05 Apr 2006 06:03:00 GMT</pubDate><guid>http://www.blogjava.net/zhangrenquan/archive/2006/04/05/39375.html</guid><wfw:comment>http://www.blogjava.net/zhangrenquan/comments/39375.html</wfw:comment><comments>http://www.blogjava.net/zhangrenquan/archive/2006/04/05/39375.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangrenquan/comments/commentRss/39375.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangrenquan/services/trackbacks/39375.html</trackback:ping><description><![CDATA[
		<p>[http://www.javaalmanac.com] - Java开发者年鉴一书的在线版本. 要想快速查到某种Java技巧的用法及示例代码, 这是一个不错的去处. <br />[http://www.onjava.com] - O'Reilly的Java网站. 每周都有新文章. <br />[http://java.sun.com] - 官方的Java开发者网站 - 每周都有新文章发表. <br />[http://www.developer.com/java] - 由Gamelan.com 维护的Java技术文章网站. <br />[http://www.java.net] - Sun公司维护的一个Java社区网站. <br />[http://www.builder.com] - Cnet的Builder.com网站 - 所有的技术文章, 以Java为主. <br />[http://www.ibm.com/developerworks/java] - IBM的Developerworks技术网站; 这是其中的Java技术主页. <br />[http://www.javaworld.com] - 最早的一个Java站点. 每周更新Java技术文章. <br />[http://www.devx.com/java] - DevX维护的一个Java技术文章网站. <br />[http://www.fawcette.com/javapro] - JavaPro在线杂志网站. <br />[http://www.sys-con.com/java] - Java Developers Journal的在线杂志网站. <br />[http://www.javadesktop.org] - 位于Java.net的一个Java桌面技术社区网站. <br />[http://www.theserverside.com] - 这是一个讨论所有Java服务器端技术的网站. <br />[http://www.jars.com] - 提供Java评论服务. 包括各种framework和应用程序. <br />[http://www.jguru.com] - 一个非常棒的采用Q&amp;A形式的Java技术资源社区. <br />[http://www.javaranch.com] - 一个论坛，得到Java问题答案的地方，初学者的好去处。 <br />[http://www.ibiblio.org/javafaq/javafaq.html] - comp.lang.java的FAQ站点 - 收集了来自comp.lang.java新闻组的问题和答案的分类目录. <br />http://java.sun.com/docs/books/tutorial/] - 来自SUN公司的官方Java指南 - 对于了解几乎所有的java技术特性非常有帮助. <br />http://www.javablogs.com] - 互联网上最活跃的一个Java Blog网站. <br />http://java.about.com/] - 来自About.com的Java新闻和技术文章网站.</p>
<img src ="http://www.blogjava.net/zhangrenquan/aggbug/39375.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangrenquan/" target="_blank">kelven</a> 2006-04-05 14:03 <a href="http://www.blogjava.net/zhangrenquan/archive/2006/04/05/39375.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>连接SQLserver数据库注意事项</title><link>http://www.blogjava.net/zhangrenquan/archive/2006/02/17/31180.html</link><dc:creator>kelven</dc:creator><author>kelven</author><pubDate>Fri, 17 Feb 2006 03:59:00 GMT</pubDate><guid>http://www.blogjava.net/zhangrenquan/archive/2006/02/17/31180.html</guid><wfw:comment>http://www.blogjava.net/zhangrenquan/comments/31180.html</wfw:comment><comments>http://www.blogjava.net/zhangrenquan/archive/2006/02/17/31180.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangrenquan/comments/commentRss/31180.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangrenquan/services/trackbacks/31180.html</trackback:ping><description><![CDATA[在<A href="http://dev.21tx.com/java/" target=_blank><FONT color=#3366cc>Java</FONT></A>文件中，连接SQLserver数据库时，需要一个连接数据库的<A href="http://drivers.21tx.com/" target=_blank><FONT color=#3366cc>驱动</FONT></A>文件。 <BR><BR>在你安装<A href="http://dev.21tx.com/java/base/jdk/" target=_blank><FONT color=#3366cc>JDK</FONT></A>的路径下的lib文件夹里拷贝一个文件jtds-0.6.jar，并且在环境变量里设置classpath，例如：你的jdk装在c:\jdk，那么环境变量classpath的路径应设为c:\jdk\lib\jtds-0.6.jar。（环境变量知道这么设吧？在我的电脑的属性，高级里。多个路径之间用分号隔开。） <BR><BR>这里提供SQLserver连接驱动文件jtds-0.6.jar，<A href="http://dl.21tx.com/" target=_blank><FONT color=#3366cc>下载</FONT></A>解压后拷贝到jdk路径下的lib文件夹里。 <BR><BR>具体在文件中的应用： <BR><BR>import java.sql.*; <BR>String url="<A href="http://dev.21tx.com/java/adv/jdbc/" target=_blank><FONT color=#3366cc>JDBC</FONT></A>:jtds:sqlserver://localhost:1433/‘数据库名´"； <BR>String driver="net.sourceforge.jtds.jdbc.Driver"; <BR>Class.forName(driver); <BR>Connection conn=DriverManager.getConnection(url,"用户名","密码"); <BR>就可以连接到你的数据库了。 <BR><BR>1433是SQLserver默认的端口号,如果要连接到其他机器上，要将localhost改为其他机器的IP地址，如192.168.0.101。 <BR><BR><BR>其中数据库名是你所新建的数据库的名称，用户名和密码是你登陆SQLserver是的用户名和密码。 <BR><BR>有的人安装SQLserver时用的是<A href="http://dev.21tx.com/os/windows/" target=_blank><FONT color=#3366cc>Windows</FONT></A>身份验证，那么用户名和密码都为空。如果不能登陆，或者要用SQL身份验证的话，需要修改<A href="http://school.21tx.com/os/regtable/" target=_blank><FONT color=#3366cc>注册表</FONT></A>。在运行里打开regedit，然后查找loginmode（具体位置：hkey_local_machine\software\microsoft\<A href="http://dev.21tx.com/database/mssql/" target=_blank><FONT color=#3366cc>MSSQL</FONT></A>server\ <BR>mssqlserver\），仅用Windows身份验证的值为1，混合身份验证的值为2。只要将1改为2，就可以用SQL身份验证了，用户名为‘sa'，密码为空。<img src ="http://www.blogjava.net/zhangrenquan/aggbug/31180.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangrenquan/" target="_blank">kelven</a> 2006-02-17 11:59 <a href="http://www.blogjava.net/zhangrenquan/archive/2006/02/17/31180.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java提供文件下载的方法</title><link>http://www.blogjava.net/zhangrenquan/archive/2006/02/16/30959.html</link><dc:creator>kelven</dc:creator><author>kelven</author><pubDate>Thu, 16 Feb 2006 04:21:00 GMT</pubDate><guid>http://www.blogjava.net/zhangrenquan/archive/2006/02/16/30959.html</guid><wfw:comment>http://www.blogjava.net/zhangrenquan/comments/30959.html</wfw:comment><comments>http://www.blogjava.net/zhangrenquan/archive/2006/02/16/30959.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangrenquan/comments/commentRss/30959.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangrenquan/services/trackbacks/30959.html</trackback:ping><description><![CDATA[<BR><BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;root&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;getServletContext().getRealPath(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">/</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;path&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;request.getParameter(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">path</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;request.getParameter(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">name</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;response.setContentType(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">unknown</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;response.addHeader(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Content-Disposition</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">filename=\</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000">&nbsp;+&nbsp;name&nbsp;+&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">\</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">try</SPAN><SPAN style="COLOR: #000000"><BR><IMG id=Codehighlighter1_286_661_Open_Image onclick="this.style.display='none'; Codehighlighter1_286_661_Open_Text.style.display='none'; Codehighlighter1_286_661_Closed_Image.style.display='inline'; Codehighlighter1_286_661_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_286_661_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_286_661_Closed_Text.style.display='none'; Codehighlighter1_286_661_Open_Image.style.display='inline'; Codehighlighter1_286_661_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN id=Codehighlighter1_286_661_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_286_661_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;java.io.OutputStream&nbsp;&nbsp;&nbsp;&nbsp;os&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;response.getOutputStream();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;java.io.FileInputStream&nbsp;fis&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;java.io.FileInputStream(root&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;path&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;name);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">byte</SPAN><SPAN style="COLOR: #000000">[]&nbsp;b&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">byte</SPAN><SPAN style="COLOR: #000000">[</SPAN><SPAN style="COLOR: #000000">1024</SPAN><SPAN style="COLOR: #000000">];<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">while</SPAN><SPAN style="COLOR: #000000">&nbsp;(&nbsp;(i&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;fis.read(b))&nbsp;</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">&nbsp;)&nbsp;<BR><IMG id=Codehighlighter1_551_592_Open_Image onclick="this.style.display='none'; Codehighlighter1_551_592_Open_Text.style.display='none'; Codehighlighter1_551_592_Closed_Image.style.display='inline'; Codehighlighter1_551_592_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_551_592_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_551_592_Closed_Text.style.display='none'; Codehighlighter1_551_592_Open_Image.style.display='inline'; Codehighlighter1_551_592_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN id=Codehighlighter1_551_592_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_551_592_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;os.write(b,&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">,&nbsp;i);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fis.close();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;os.flush();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;os.close();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">catch</SPAN><SPAN style="COLOR: #000000">&nbsp;(&nbsp;Exception&nbsp;e&nbsp;)<BR><IMG id=Codehighlighter1_693_699_Open_Image onclick="this.style.display='none'; Codehighlighter1_693_699_Open_Text.style.display='none'; Codehighlighter1_693_699_Closed_Image.style.display='inline'; Codehighlighter1_693_699_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_693_699_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_693_699_Closed_Text.style.display='none'; Codehighlighter1_693_699_Open_Image.style.display='inline'; Codehighlighter1_693_699_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN id=Codehighlighter1_693_699_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_693_699_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN></DIV><img src ="http://www.blogjava.net/zhangrenquan/aggbug/30959.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangrenquan/" target="_blank">kelven</a> 2006-02-16 12:21 <a href="http://www.blogjava.net/zhangrenquan/archive/2006/02/16/30959.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MySQL的嵌套查询</title><link>http://www.blogjava.net/zhangrenquan/archive/2005/10/31/17595.html</link><dc:creator>kelven</dc:creator><author>kelven</author><pubDate>Mon, 31 Oct 2005 13:34:00 GMT</pubDate><guid>http://www.blogjava.net/zhangrenquan/archive/2005/10/31/17595.html</guid><wfw:comment>http://www.blogjava.net/zhangrenquan/comments/17595.html</wfw:comment><comments>http://www.blogjava.net/zhangrenquan/archive/2005/10/31/17595.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangrenquan/comments/commentRss/17595.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangrenquan/services/trackbacks/17595.html</trackback:ping><description><![CDATA[1. SELECT语句的子查询:<BR>语法:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SELECT ... FROM (subquery) AS name ...<BR><BR>先创建一个表:<BR>CREATE TABLE t1 (s1 INT, s2 CHAR(5), s3 FLOAT);<BR>INSERT INTO t1 VALUES (1,'1',1.0);<BR>INSERT INTO t1 VALUES (2,'2',2.0);<BR><BR>我们就可以进行以下的嵌套查询了:<BR>SELECT sb1,sb2,sb3<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FROM (SELECT s1 AS sb1, s2 AS sb2, s3*2 AS sb3 FROM t1) AS sb<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WHERE sb1 &gt; 1;<BR><BR>结果是： <FONT color=#000000>2<CODE><FONT face=新宋体>, '2', 4.0</FONT></CODE>. <BR></FONT><BR>我们知道下面语句是不会得到正确结果的，因为对经过Group by排序的集合进行求均值是不能得到正确答案的：<BR>SELECT AVG(SUM(column1)) FROM t1 GROUP BY column1<BR><BR>所以我们可以通过下面的嵌套查询实现同样的效果：<BR>SELECT AVG(sum_column1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FROM (SELECT SUM(column1) AS sum_column1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FROM t1 GROUP BY column1) AS t1;<BR><BR>2.行的子查询（Row Subquery）：<BR>看下面的例子：<BR>SELECT * FROM t1 WHERE ROW(1,2) = (SELECT column1, column2 FROM t2);<BR>这个查询是返回column1等于column2的结果行。Row函数中的1和2相当于构造参数。想必Blogjava上的同志对这些应该比较清楚，也不去详细介绍了。<BR><BR>3.使用Exist和Not Exist参数<BR>这里的Exist和Not Exist用途及用法和在其他没有什么大的区别,我就简单举几个范例好了:<BR><BR>范例一:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SELECT DISTINCT store_type FROM Stores<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WHERE EXISTS (SELECT * FROM Cities_Stores<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WHERE Cities_Stores.store_type = Stores.store_type);<BR>范例二:&nbsp;&nbsp; SELECT DISTINCT store_type FROM Stores<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WHERE NOT EXISTS (SELECT * FROM Cities_Stores<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WHERE Cities_Stores.store_type = Stores.store_type);<BR>范例三:&nbsp; 这个例子中嵌套使用了Not Exist语法，稍微注意一下：<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SELECT DISTINCT store_type FROM Stores S1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WHERE NOT EXISTS (<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SELECT * FROM Cities WHERE NOT EXISTS (<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SELECT * FROM Cities_Stores<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WHERE Cities_Stores.city = Cities.city<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AND Cities_Stores.store_type = Stores.store_type));<BR><BR>4.条件关联关系查询：<BR>解释起来麻烦，直接看例子吧：<BR>SELECT column1 FROM t1 AS x<BR>&nbsp;&nbsp;&nbsp;&nbsp; WHERE x.column1 = (SELECT column1 FROM t2 AS x<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WHERE x.column1 = (SELECT column1 FROM t3<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WHERE x.column2 = t3.column1));<BR>跟其他数据库做法是一样的。<BR><BR>5.其他使用方法和注意：<BR>除了上面这些还有很多很多，不过就不去细讲了，因为这些跟别的数据库差不多，只是为了给大家一个参考，提提就够了。<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SELECT (SELECT s1 FROM t2) FROM t1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SELECT (SELECT s2 FROM t1);<BR><BR>支持子查询的语法有：SELECT，INSERT，UPDATE，DELETE，SET和DO。<BR><BR>子查询可以使用任何普通查询中使用的关键词：如DINSTINCT，GROUP BY，LIMIT，ORDER BY，UNION，ALL，UNION ALL等。可以使用&lt;,&gt;, &lt;=, &gt;=, =, &lt;&gt;运算符进行比较，也可以使用ANY ，IN和SOME进行集合的匹配。<img src ="http://www.blogjava.net/zhangrenquan/aggbug/17595.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangrenquan/" target="_blank">kelven</a> 2005-10-31 21:34 <a href="http://www.blogjava.net/zhangrenquan/archive/2005/10/31/17595.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java 文件操作大全</title><link>http://www.blogjava.net/zhangrenquan/archive/2005/10/31/17594.html</link><dc:creator>kelven</dc:creator><author>kelven</author><pubDate>Mon, 31 Oct 2005 13:30:00 GMT</pubDate><guid>http://www.blogjava.net/zhangrenquan/archive/2005/10/31/17594.html</guid><wfw:comment>http://www.blogjava.net/zhangrenquan/comments/17594.html</wfw:comment><comments>http://www.blogjava.net/zhangrenquan/archive/2005/10/31/17594.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangrenquan/comments/commentRss/17594.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangrenquan/services/trackbacks/17594.html</trackback:ping><description><![CDATA[<STRONG>文件的建立/检查与删除</STRONG> 
<P>&lt;%@ page contentType="text/html;charset=gb2312"%&gt; <BR>&lt;%@ page import="java.io.*"%&gt; <BR>&lt;html&gt; <BR>&lt;head&gt; <BR>&lt;title&gt;文件的建立、检查与删除&lt;/title&gt; <BR>&lt;/head&gt; <BR>&lt;body&gt; <BR>&lt;% <BR>&nbsp;&nbsp;&nbsp; String path=request.getRealPath(""); <BR>&nbsp;&nbsp;&nbsp; //out.println(path); <BR>&nbsp;&nbsp;&nbsp; File f=new File(path,"File.txt"); <BR>&nbsp;&nbsp;&nbsp; //out.println(f); <BR>&nbsp;&nbsp;&nbsp; //out.println(f.exists()); <BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp; //检查File.txt是否存在 <BR>&nbsp;&nbsp;&nbsp; if(f.exists()){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f.delete();//删除File.txt文件 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println(path + "<A href="file://File.txt/">\\File.txt</A> 存在，已删除。"); <BR>&nbsp;&nbsp;&nbsp; }else{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f.createNewFile();//在当前目录下建立一个名为File.txt的文件 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println(path + "<A href="file://File.txt/">\\File.txt</A> 不存在，已建立。");//输出目前所在的目录路径 <BR>&nbsp;&nbsp;&nbsp;&nbsp; } <BR>%&gt;</P>
<P><BR><STRONG><FONT size=3>目录的建立/检查与删除</FONT></STRONG> </P>
<P>&lt;%@ page contentType="text/html;charset=gb2312"%&gt; <BR>&lt;%@ page import="java.io.*"%&gt; <BR>&lt;html&gt; <BR>&lt;head&gt; <BR>&lt;title&gt;目录的建立/检查与删除&lt;/title&gt; <BR>&lt;/head&gt; <BR>&lt;body&gt; <BR>&lt;% <BR>&nbsp;&nbsp;&nbsp; String path=request.getRealPath(""); <BR>&nbsp;&nbsp;&nbsp; path=path + "<A href="file://Sub/" ; ?>\\Sub";//</A>将要建立的目录路径 <BR>&nbsp;&nbsp;&nbsp; File d=new File(path);//建立代表Sub目录的File对象，并得到它的一个引用 <BR>&nbsp;&nbsp;&nbsp; if(d.exists()){//检查Sub目录是否存在 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d.delete(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ("Sub目录存在，已删除"); <BR>&nbsp;&nbsp;&nbsp; }else{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d.mkdir();//建立Sub目录 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println("Sub目录不存在，已建立"); <BR>&nbsp;&nbsp;&nbsp; } <BR>%&gt; <BR>&lt;/body&gt; <BR>&lt;/html&gt; </P>
<P><BR><FONT size=3><STRONG>如何在JSP中处理虚拟目录</STRONG></FONT> <BR></P>
<P>&lt;%@ page contentType="text/html;charset=gb2312"%&gt; <BR>&lt;%@ page import="java.io.*"%&gt; <BR>&lt;html&gt; <BR>&lt;head&gt; <BR>&lt;title&gt;JSP中如何处理虚拟目录&lt;/title&gt; <BR>&lt;/head&gt; <BR>&lt;body&gt; <BR>取得虚拟目录对应的磁盘路径&lt;br&gt; <BR>Web站点主目录的位置为&lt;font color=#ff0000&gt;&lt;%=request.getRealPath("/")%&gt;&lt;/font&gt;&lt;br&gt; <BR>JSP网页所在的目录位置&lt;font color=#ff0000&gt;&lt;%=request.getRealPath("./")%&gt;&lt;/font&gt;&lt;br&gt; <BR>JSP网页所在目录上一层目录的位置&lt;font color=#ff0000&gt;&lt;%=request.getRealPath("../")%&gt;&lt;/font&gt;&lt;br&gt; <BR>&lt;/body&gt; <BR>&lt;/html&gt; </P>
<P><BR><STRONG><FONT size=3>文件属性的取得</FONT></STRONG> <BR>&lt;%@ page contentType="text/html;charset=gb2312"%&gt; <BR>&lt;%@ page import="java.util.Date,java.io.*"%&gt; <BR>&lt;html&gt; <BR>&lt;head&gt; <BR>&lt;title&gt;文件属性的取得&lt;/title&gt; <BR>&lt;/head&gt; <BR>&lt;body&gt; <BR>&lt;% <BR>String path=request.getRealPath("/"); <BR>File f=new File(path,"ReadData.txt"); <BR>if(f.exists()){ <BR>%&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;%=f.getName()%&gt;的属性如下：&lt;br&gt;&lt;br&gt; <BR>&nbsp;&nbsp;&nbsp; 文件长度为：&lt;%=f.length()%&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;%=f.isFile()?"是文件":"不是文件"%&gt;&lt;br&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;%=f.isDirectory()?"是目录":"不是目录"%&gt;&lt;br&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;%=f.canRead()?"可读取":"不可读取"%&gt;&lt;br&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;%=f.canWrite()?"可写入":"不可写入"%&gt;&lt;br&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;%=f.isHidden()?"是隐藏文件":"不是隐藏文件"%&gt;&lt;br&gt; <BR>&nbsp;&nbsp;&nbsp; 文件的最后修改日期为：&lt;%=new Date(f.lastModified())%&gt;&lt;br&gt; <BR>&lt;% <BR>}else{ <BR>&nbsp;&nbsp;&nbsp; f.createNewFile();//在当前目录下建立一个名为ReaData.txt的文件 <BR>%&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;%=f.getName()%&gt;的属性如下：&lt;br&gt;&lt;br&gt; <BR>&nbsp;&nbsp;&nbsp; 文件长度为：&lt;%=f.length()%&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;%=f.isFile()?"是文件":"不是文件"%&gt;&lt;br&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;%=f.isDirectory()?"是目录":"不是目录"%&gt;&lt;br&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;%=f.canRead()?"可读取":"不可读取"%&gt;&lt;br&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;%=f.canWrite()?"可写入":"不可写入"%&gt;&lt;br&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;%=f.isHidden()?"是隐藏文件":"不是隐藏文件"%&gt;&lt;br&gt; <BR>&nbsp;&nbsp;&nbsp; 文件的最后修改日期为：&lt;%=new Date(f.lastModified())%&gt;&lt;br&gt; <BR>&lt;% <BR>} <BR>%&gt; <BR>&lt;/body&gt; <BR>&lt;/html&gt;<BR>&nbsp;</P>
<P><FONT size=3><STRONG>取出目录中文件的方法</STRONG></FONT> </P>
<P>&lt;%@ page contentType="text/html;charset=gb2312"%&gt; <BR>&lt;%@ page import="java.io.*"%&gt; <BR>&lt;html&gt; <BR>&lt;head&gt; <BR>&lt;title&gt;取出目录中文件的方法--列出目录中的文件&lt;/title&gt; <BR>&lt;/head&gt; <BR>&lt;body&gt; <BR>&lt;% <BR>&nbsp;&nbsp;&nbsp; String path=request.getRealPath("/"); <BR>&nbsp;&nbsp;&nbsp; File d=new File(path);//建立当前目录中文件的File对象 <BR>&nbsp;&nbsp;&nbsp; File list[]=d.listFiles();//取得代表目录中所有文件的File对象数组 <BR>&nbsp;&nbsp;&nbsp; out.println("&lt;font color=#ff0000&gt;" + path + "目录下的文件：&lt;/font&gt;&lt;br&gt;"); <BR>&nbsp;&nbsp;&nbsp; for(int i=0;i&lt;list.length;i++){ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(list&lt;I&gt;.isFile()){ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println(list&lt;I&gt;.getName() + "&lt;br&gt;"); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp; out.println("&lt;br&gt;&lt;font color=#ff0000&gt;" + path + "目录下的目录：&lt;/font&gt;&lt;br&gt;"); <BR>&nbsp;&nbsp;&nbsp; for(int i=0;i&lt;list.length;i++){ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(list&lt;I&gt;.isDirectory()){ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println(list&lt;I&gt;.getName() + "&lt;br&gt;"); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp; } <BR>%&gt; <BR>&lt;/body&gt; <BR>&lt;/html&gt; </P>
<P><BR><STRONG><FONT size=3>判断是否为空白文件 <BR></FONT></STRONG>&lt;%@ page contentType="text/html;charset=gb2312"%&gt; <BR>&lt;%@ page import="java.io.*"%&gt; <BR>&lt;html&gt; <BR>&lt;head&gt; <BR>&lt;title&gt;判断是否为空白文件&lt;/title&gt; <BR>&lt;/head&gt; <BR>&lt;body&gt; <BR>&lt;% <BR>&nbsp;&nbsp;&nbsp; String path=request.getRealPath("/"); <BR>&nbsp;&nbsp;&nbsp; out.println(path); <BR>&nbsp;&nbsp;&nbsp; FileReader fr=new FileReader(path + "<A href="file://AtEnd.txt/" ? );>\\AtEnd.txt");//</A>建立FileReader对象，并实例化为fr <BR>&nbsp;&nbsp;&nbsp; //对FileReader类生成的对象使用read()方法，可以从字符流中读取下一个字符。 <BR>&nbsp;&nbsp;&nbsp; if(fr.read()==-1)//判断是否已读到文件的结尾 <BR>&nbsp;&nbsp;&nbsp; { <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.print("AtEnd.txt文件中没有数据&lt;br&gt;"); <BR>&nbsp;&nbsp;&nbsp; }else{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println("AtEnd.txt文件中有数据"); <BR>&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp; fr.close(); <BR>%&gt; <BR>&lt;/body&gt; <BR>&lt;/html&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;B&gt;读取所有的文件数据&lt;/B&gt; <BR>&lt;ccid_nobr&gt; <BR>&lt;table width="400" border="1" cellspacing="0" cellpadding="2" <BR>bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center"&gt; <BR>&lt;tr&gt; <BR>&lt;td bgcolor="e6e6e6" class="code" style="font-size:9pt"&gt; <BR>&lt;pre&gt;&lt;ccid_code&gt; &lt;%@ page contentType="text/html;charset=gb2312"%&gt; <BR>&lt;%@ page import="java.io.*,java.lang.*"%&gt; <BR>&lt;html&gt; <BR>&lt;head&gt; <BR>&lt;title&gt;读取所有的文件数据&lt;/title&gt; <BR>&lt;/head&gt; <BR>&lt;body&gt; <BR>&lt;% <BR>&nbsp;&nbsp;&nbsp; String path=request.getRealPath("."); <BR>&nbsp;&nbsp;&nbsp; FileReader fr=new FileReader(path + "<A href="file://ReadData.txt/">\\ReadData.txt</A>"); <BR>&nbsp;&nbsp;&nbsp; //关键在于读取过程中，要判断所读取的字符是否已经到了文件的末尾，并且这个字符是不是文件中的断行符，即判断该字符值是否为13</P>
<P>。 <BR>&nbsp;&nbsp;&nbsp; int c=fr.read();//从文件中读取一个字符 <BR>&nbsp;&nbsp;&nbsp; //判断是否已读到文件结尾 <BR>&nbsp;&nbsp;&nbsp; while(c!=-1){ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.print((char)c);//输出读到的数据 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c=fr.read();//从文件中继续读取数据 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(c==13){//判断是否为断行字符 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.print("&lt;br&gt;");//输出分行标签 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fr.skip(1);//略过一个字符 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /c=fr.read();//读取一个字符 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp; fr.close(); <BR>%&gt; <BR>&lt;/body&gt; <BR>&lt;/html&gt; <BR>　　一行一行读取数据 <BR>&lt;%@ page contentType="text/html;charset=gb2312"%&gt; <BR>&lt;%@ page import="java.io.*"%&gt; <BR>&lt;html&gt; <BR>&lt;head&gt; <BR>&lt;title&gt;文件读取&lt;/title&gt; <BR>&lt;/head&gt; <BR>&lt;body&gt; <BR>&lt;% <BR>&nbsp;&nbsp;&nbsp; String path=request.getRealPath("");//取得当前目录的路径 <BR>&nbsp;&nbsp;&nbsp; FileReader fr=new FileReader(path + "<A href="file://file//inc//t.txt" ? );>\\file\\inc\\t.txt");//</A>建立FileReader对象，并实例化为fr <BR>&nbsp;&nbsp;&nbsp; BufferedReader br=new BufferedReader(fr);//建立BufferedReader对象，并实例化为br <BR>&nbsp;&nbsp;&nbsp; String Line=br.readLine();//从文件读取一行字符串 <BR>&nbsp;&nbsp;&nbsp; //判断读取到的字符串是否不为空 <BR>&nbsp;&nbsp;&nbsp; while(Line!=null){ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println(Line + "&lt;br&gt;");//输出从文件中读取的数据 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Line=br.readLine();//从文件中继续读取一行数据 <BR>&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp; br.close();//关闭BufferedReader对象 <BR>&nbsp;&nbsp;&nbsp; fr.close();//关闭文件 <BR>%&gt; <BR>&lt;/body&gt; <BR>&lt;/html&gt; </P>
<P><FONT size=3><STRONG>略过文件中的字符不读取</STRONG></FONT> <BR>&lt;%@ page contentType="text/html;charset=gb2312"%&gt; <BR>&lt;%@ page import="java.io.*"%&gt; <BR>&lt;html&gt; <BR>&lt;head&gt; <BR>&lt;title&gt;略过字节不读取&lt;/title&gt; <BR>&lt;/head&gt; <BR>&lt;body&gt; <BR>&lt;% <BR>&nbsp;&nbsp;&nbsp; String path=request.getRealPath("."); <BR>&nbsp;&nbsp;&nbsp; FileReader fr=new FileReader(path + "<A href="file://ReadData.txt/">\\ReadData.txt</A>"); <BR>&nbsp;&nbsp;&nbsp; fr.skip(2);//跳过2个字节 <BR>&nbsp;&nbsp;&nbsp; int c=fr.read();//读取一个字节 <BR>&nbsp;&nbsp;&nbsp; while(c!=-1){ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.print((char)c); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c=fr.read(); <BR>&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp; fr.close(); <BR>%&gt; <BR>&lt;/body&gt; <BR>&lt;/html&gt; <BR>　　将数据写入文件 <BR>&lt;%@ page contentType="text/html;charset=gb2312"%&gt; <BR>&lt;%@ page import="java.io.*"%&gt; <BR>&lt;html&gt; <BR>&lt;head&gt; <BR>&lt;title&gt;将数据写入文件&lt;/title&gt; <BR>&lt;/head&gt; <BR>&lt;body&gt; <BR>&lt;% <BR>&nbsp;&nbsp;&nbsp; String path=request.getRealPath("."); <BR>&nbsp;&nbsp;&nbsp; FileWriter fw=new FileWriter(path + "<A href="file://WriteData.txt/" ? );>\\WriteData.txt");//</A>建立FileWriter对象，并实例化fw <BR>&nbsp;&nbsp;&nbsp; //将字符串写入文件 <BR>&nbsp;&nbsp;&nbsp; fw.write("大家好！"); <BR>&nbsp;&nbsp;&nbsp; fw.write("本书是《JSP编程技巧》"); <BR>&nbsp;&nbsp;&nbsp; fw.write("请多多指教！"); <BR>&nbsp;&nbsp;&nbsp; fw.write("email:stride@sina.com"); <BR>&nbsp;&nbsp;&nbsp; fw.close(); </P>
<P>&nbsp;&nbsp;&nbsp; FileReader fr=new FileReader(path + "<A href="file://WriteData.txt/">\\WriteData.txt</A>"); <BR>&nbsp;&nbsp;&nbsp; BufferedReader br=new BufferedReader(fr);//建立BufferedReader对象，并实例化为br <BR>&nbsp;&nbsp;&nbsp; String Line=br.readLine(); <BR>&nbsp;&nbsp;&nbsp; //读取一行数据 <BR>&nbsp;&nbsp;&nbsp; out.println(Line + "&lt;br&gt;"); <BR>&nbsp;&nbsp;&nbsp; br.close();//关闭BufferedReader对象 <BR>&nbsp;&nbsp;&nbsp; fr.close(); <BR>%&gt; <BR>&lt;/body&gt; <BR>&lt;/html&gt; <BR>　　将写入文件的数据分行 <BR>&lt;%@ page contentType="text/html;charset=gb2312"%&gt; <BR>&lt;%@ page import="java.io.*"%&gt; <BR>&lt;html&gt; <BR>&lt;head&gt; <BR>&lt;title&gt;将写入文件的数据分行&lt;/title&gt; <BR>&lt;/head&gt; <BR>&lt;body&gt; <BR>&lt;% <BR>&nbsp;&nbsp;&nbsp; String path=request.getRealPath("."); <BR>&nbsp;&nbsp;&nbsp; FileWriter fw=new FileWriter(path + "<A href="file://WriteData.txt/">\\WriteData.txt</A>"); <BR>&nbsp;&nbsp;&nbsp; BufferedWriter bw=new BufferedWriter(fw); <BR>&nbsp;&nbsp;&nbsp; bw.write("大家好！"); <BR>&nbsp;&nbsp;&nbsp; bw.write("本书是《JSP编程技巧》。"); <BR>&nbsp;&nbsp;&nbsp; bw.newLine();//断行 <BR>&nbsp;&nbsp;&nbsp; bw.write("请多多指教！"); <BR>&nbsp;&nbsp;&nbsp; bw.newLine();//断行 <BR>&nbsp;&nbsp;&nbsp; bw.write("email: <A href="mailto:stride@sina.com">stride@sina.com</A>"); <BR>&nbsp;&nbsp;&nbsp; bw.flush();//将数据更新至文件 <BR>&nbsp;&nbsp;&nbsp; fw.close();//关闭文件流 <BR>&nbsp;&nbsp;&nbsp; out.println("写入文件内容为：&lt;br&gt;"); <BR>&nbsp;&nbsp;&nbsp; FileReader fr=new FileReader(path + "<A href="file://WriteData.txt/">\\WriteData.txt</A>"); <BR>&nbsp;&nbsp;&nbsp; BufferedReader br=new BufferedReader(fr); <BR>&nbsp;&nbsp;&nbsp; String Line=br.readLine();//读取一行数据 <BR>&nbsp;&nbsp;&nbsp; while(Line!=null){ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println(Line + "&lt;br&gt;"); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Line=br.readLine(); <BR>&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp; fr.close(); <BR>%&gt; <BR>&lt;/body&gt; <BR>&lt;/html&gt; </P>
<P><STRONG><FONT size=3>如何将数据追加写入到文件</FONT></STRONG> <BR>&lt;%@ page contentType="text/html;charset=gb2312"%&gt; <BR>&lt;%@ page import="java.io.*"%&gt; <BR>&lt;html&gt; <BR>&lt;head&gt; <BR>&lt;title&gt;将写入文件的数据分行&lt;/title&gt; <BR>&lt;/head&gt; <BR>&lt;body&gt; <BR>&lt;% <BR>&nbsp;<BR>%&gt; <BR>&lt;/body&gt; <BR>&lt;/html&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/&gt;</P><img src ="http://www.blogjava.net/zhangrenquan/aggbug/17594.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangrenquan/" target="_blank">kelven</a> 2005-10-31 21:30 <a href="http://www.blogjava.net/zhangrenquan/archive/2005/10/31/17594.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>