自由飞翔

我在仰望,java之上

统计

留言簿(2)

我关注的blog

阅读排行榜

评论排行榜

#

文件操作

一、删除文件或删除文件目录
参考文章来源:http://www.examw.com/java/jichu/142150/ 

 import java.io.File;

  public class DeleteFileUtil {

  /**

  * 删除文件,可以是单个文件或文件夹

  * @param   fileName    待删除的文件名

  * @return 文件删除成功返回true,否则返回false

  */

  public static boolean delete(String fileName){

  File file = new File(fileName);

  if(!file.exists()){

  System.out.println("删除文件失败:"+fileName+"文件不存在");

  return false;

  }else{

  if(file.isFile()){

  return deleteFile(fileName);

  }else{

  return deleteDirectory(fileName);

  }

  }

  }

  /**

  * 删除单个文件

  * @param   fileName    被删除文件的文件名

  * @return 单个文件删除成功返回true,否则返回false

  */

  public static boolean deleteFile(String fileName){

  File file = new File(fileName);

  if(file.isFile() && file.exists()){

  file.delete();

  System.out.println("删除单个文件"+fileName+"成功!");

  return true;

  }else{

  System.out.println("删除单个文件"+fileName+"失败!");

  return false;

  }

  }

  /**

  * 删除目录(文件夹)以及目录下的文件

  * @param   dir 被删除目录的文件路径

  * @return  目录删除成功返回true,否则返回false

  */

  public static boolean deleteDirectory(String dir){

  //如果dir不以文件分隔符结尾,自动添加文件分隔符

  if(!dir.endsWith(File.separator)){

  dir = dir+File.separator;

  }

  File dirFile = new File(dir);

  //如果dir对应的文件不存在,或者不是一个目录,则退出

  if(!dirFile.exists() || !dirFile.isDirectory()){

  System.out.println("删除目录失败"+dir+"目录不存在!");

  return false;

  }

  boolean flag = true;

  //删除文件夹下的所有文件(包括子目录)

  File[] files = dirFile.listFiles();

  for(int i=0;i<files.length;i++){

  //删除子文件

  if(files[i].isFile()){

  flag = deleteFile(files[i].getAbsolutePath());

  if(!flag){

  break;

  }

  }

  //删除子目录

  else{

  flag = deleteDirectory(files[i].getAbsolutePath());

  if(!flag){

  break;

  }

  }

  }

  if(!flag){

  System.out.println("删除目录失败");

  return false;

  }

  //删除当前目录

  if(dirFile.delete()){

  System.out.println("删除目录"+dir+"成功!");

  return true;

  }else{

  System.out.println("删除目录"+dir+"失败!");

  return false;

  }

  }

  public static void main(String[] args) {

  //String fileName = "g:/temp/xwz.txt";

  //DeleteFileUtil.deleteFile(fileName);

  String fileDir = "G:/temp/temp0/temp1";

  //DeleteFileUtil.deleteDirectory(fileDir);

  DeleteFileUtil.delete(fileDir);

  }

  }
二、列出目录或文件
三、读取文本

后续,晚了,先睡了....

posted @ 2011-08-22 02:47 GavinMiao 阅读(301) | 评论 (2)编辑 收藏

jsp相对路径和绝对路径

一、
1、<base>标签的作用:
为页面上的所有链接规定默认地址或默认目标。
2、<base>标签的两个属性,target:在何处打开页面中所有的链接;href:规定页面中所有相对链接的基准 URL。
3、例子:
1)
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<base href="<%=basePath%>">

jsp页面显示:
basePath:
http://localhost:8080/testProject/
2)
<% String realPath = application.getRealPath("/"); %>

jsp页面显示:
realPath:
D:\tomcat\webapps\testProject\
3)
${request.contextPath}
jsp页面显示:
contextPath:
/testProject
4)
如果请求是http://localhost:8080/testProject/page/test.jsp;

<%=request.getRequestURI() %>
jsp页面显示:
requestURI:
/testProject/page/test.jsp
二、
1、文件分隔符:unix系统:“/”,windows系统:“\”;
System.getProperty("file.separator")
2、路径分隔符:unix系统:“:”,windows系统:“;”;
System.getProperty("path.separator");
三、
1. <%=Thread.currentThread().getContextClassLoader().getResource("") %>
jsp页面显示:
file:/D:/tomcat/webapps/testProject/WEB-INF/classes/

posted @ 2011-08-22 02:29 GavinMiao 阅读(5386) | 评论 (0)编辑 收藏

html相对路径和绝对路径

文章来源 :http://blog.csdn.net/teedry/article/details/5190371


HTML相对路径与绝对路径

    在网页制作的过程中,少不了跟路径打交道,比如,包含一个文件,插入一个图片等,与路径都有关系,如果使用了错误的文件路径,就会导致引用失效(无法浏览链接文件,或无法显示插入的图片等)。初学者可能会感到困惑,下面我就详细的介绍一下相对路径与绝对路径。

HTML有2种路径的写法:相对路径和绝对路径。

1.HTML相对路径(Relative Path)
同一个目录的文件引用
如果源文件和引用文件在同一个目录里,直接写引用文件名即可,这时引用文件的方式就是使用相对路径。

我们现在建一个源文件info.html,在info.html里要引用index.html文件作为超链接。

假设info.html路径是:c:/Inetpub/wwwroot/sites/blabla/info.html
假设index.html路径是:c:/Inetpub/wwwroot/sites/blabla/index.html
在info.html加入index.html超链接的代码应该这样写:

<a href = "index.html">这是超连接</a>
如何表示上级目录
../表示源文件所在目录的上一级目录,../../表示源文件所在目录的上上级目录,以此类推。

假设info.html路径是:c:/Inetpub/wwwroot/sites/blabla/info.html
假设index.html路径是:c:/Inetpub/wwwroot/sites/index.html
在info.html加入index.html超链接的代码应该这样写:

<a href = "../index.html">这是超连接</a>

假设info.html路径是:c:/Inetpub/wwwroot/sites/blabla/info.html
假设index.html路径是:c:/Inetpub/wwwroot/index.html
在info.html加入index.html超链接的代码应该这样写:


<a href = "../../index.html">index.html</a>
假设info.html路径是:c:/Inetpub/wwwroot/sites/blabla/info.html
假设index.html路径是:c:/Inetpub/wwwroot/sites/wowstory/index.html
在info.html加入index.html超链接的代码应该这样写:


<a href = "../wowstory/index.html">index.html</a>
如何表示下级目录
引用下级目录的文件,直接写下级目录文件的路径即可。

假设info.html路径是:c:/Inetpub/wwwroot/sites/blabla/info.html
假设index.html路径是:c:/Inetpub/wwwroot/sites/blabla/html/index.html
在info.html加入index.html超链接的代码应该这样写:


<a href = "html/index.html">这是超连接</a>
假设info.html路径是:c:/Inetpub/wwwroot/sites/blabla/info.html
假设index.html路径是:c:/Inetpub/wwwroot/sites/blabla/html/tutorials/index.html
在info.html加入index.html超链接的代码应该这样写:


<a href = "html/tutorials/index.html">这是超连接</a>
2.HTML绝对路径(Absolute Path)
大 家都知道,在我们平时使用计算机时要找到需要的文件就必须知道文件的位置,而表示文件的位置的方式就是路径,例如只要看到这个路径:c:/website /img/photo.jpg我们就知道photo.jpg文件是在c盘的website目录下的img子目录中。类似于这样完整的描述文件位置的路径就 是绝对路径。我们不需要知道其他任何信息就可以根据绝对路径判断出文件的位置。而在网站中类似以http://www.ajaxstu.com/img/photo.jpg来确定文件位置的方式也是绝对路径。


HTML绝对路径(absolute path)在网页制作中指带域名的文件的完整路径。

假设你注册了域名http://www.ajaxstu.com,并申请了虚拟主机,你的虚拟主机提供商会给你一个目录,比如www,这个www就是你网站的根目录。

假设你在www根目录下放了一个文件default.asp,这个文件的绝对路径就是: font color="#0058db">http://www.ajaxstu.com/default.asp。

假设你在www根目录下建了一个目录叫archives,然后在该目录下放了一个文件2886.html,这个文件的绝对路径就是http://www.ajaxstu.com/archives/2886.html

posted @ 2011-08-22 01:12 GavinMiao 阅读(9330) | 评论 (2)编辑 收藏

String、StringBuffer、StringBuilder

区别与联系:
1.StringBuffer是线程安全的,String和StringBuilder不是;
2.StringBuffer和StringBuilder都是可变的,修改是针对自身的,而String是不可变的,修改一次就创建一个新的String对象;
3.String和StringBuffer都是final类型;
4.一般,效率上StringBuiler>StringBuffer>String
5.StringBuilder是5.0新增的;
用法:
一、String
1.常用构造函数:
1)String(char[] value):
eg:     
char data[] = {'a', 'b', 'c'};
      String str = new String(data);
      2)String(String original):
      3)String(StringBuffer buffer): 
      4)String(StringBuilder builder): 
      5)String(byte[] bytes, String charsetName) :
      eg:
      String s_iso88591 = new String("中".getBytes("UTF-8"),"ISO8859-1");
      String s_utf8 = new String(s_iso88591.getBytes("ISO8859-1"),"UTF-8");
      注意:GBK编码是一个中文2个字节,而UTF-8编码是一个中文3个字节,
      ISO-8859-1编码是一个字节对应一个字符;
      String gbk = "我来了";  
    String iso = new String(gbk.getBytes("UTF-8"),"ISO-8859-1"); 
      2.常用方法:
      1)charAt 方法,返回指定index的字符。
String string ="123456789";
char a =string.charAt(2);
System.out.print(a);
  a=3
      2)indexOf(int ch)
ch:unicode code point,如果字符串中没有ch,则返回-1
String ss = "abcde";
System.out.println(ss.indexOf(2));
System.out.println(ss.indexOf(98));
结果:-1 1
因为2对应的unicode在字符串ss中不存在,所以返回值-1,98对应的unicode 是b,所以返回值是index=1
     
      3)concat(String str)将参数连接到字符串的末尾
concatenate 如锁链般连续,使连锁,连结
string ="abc";
System.out.print(string.concat("123"));
结果:abc123
如果str的length是0,那么这个String就会被返回。
      4)hashCode 返回字符串的hashCode值
String string0 ="abc";
String string1 ="abc";
System.out.println(string1.hashCode());
System.out.println(string1.hashCode());
结果:
96354
96354
      5)contains(CharSequence s)是否包含参数
String string0 ="abcdef";
System.out.println( string0.contains("de"));
结果:true
      6)startsWith(String perfix) 是否以perfix开头,yes 返回true ,no返回false
String string ="abcbd";
System.out.println(    string.startsWith("abc"));
System.out.println(    string.startsWith("Ab"));
结果:true
false
      7)endsWith(String suffix)是否以suffix结尾,yes 返回true ,no返回false
String string ="abcde";
System.out.println(    string.endsWith("e"));
结果:true
      8)trim()去掉字符串的前后空格
String string =" abc ";
System.out.println(string.length()+","+    string.trim().length());
结果:5,3
9)length() 字符串的长度
   char chars[]={'a','b'.'c'};
    String s=new String(chars);
    int len=s.length();
10)char[] toCharArray() 将一个字符串转换成一个字符数组
11)equals()和equalsIgnoreCase() 比较两个字符串
12)substring()  
第一种是:String substring(int startIndex)
        第二种是:String substring(int startIndex,int endIndex)
13)toLowerCase() 和toUpperCase() 
二、StringBuffer
1、构造器:
StringBuffer()
   StringBuffer(int size)
   StringBuffer(String str)
   StringBuffer(CharSequence chars)
2、方法:
1)append() 可把任何类型数据的字符串表示连接到调用的StringBuffer对象的末尾
2)insert(int offset,Object) 在offset处插入Object对应的字符串到StringBuffer对象
3)delete(int start,int end) 删除字符
4)indexOf()
5)reverse() 颠倒StringBuffer对象中的字符
6)length()
7)toString()
8)subString(int start)  或subString(int start,int end)截取子串
三、StringBuilder
1.构造器
与StringBuffer相同
2.常用的方法:
与StringBuffer相同
1)追加:Append
2)插入:Insert
3)删除:Remove
4)替换:Replace
参考来源:
http://www.blogjava.net/chenpengyi/archive/2006/05/04/44492.html
http://zhuhuide2004.iteye.com/blog/562739
http://www.iteye.com/topic/1097560
http://www.cnblogs.com/crazyac/articles/2012791.html

posted @ 2011-08-21 01:00 GavinMiao 阅读(891) | 评论 (0)编辑 收藏

各种在线api地址

J2SE1.7英文api地址: http://download.oracle.com/javase/7/docs/api/
J2SE1.6英文api地址:  http://download.oracle.com/javase/6/docs/api/
J2SE1.5 英文api地址:http://download.oracle.com/javase/1.5.0/docs/api/
J2SE1.4 英文api地址:http://download.oracle.com/javase/1.4.2/docs/api/ 
J2EE1.5英文api地址:   http://download.oracle.com/javaee/5/api/
J2EE1.6英文api地址:   http://download.oracle.com/javaee/6/api/
J2EE1.4英文api地址:   http://download.oracle.com/javaee/1.4/api/  
J2SE1.6中文api地址:http://www.xasxt.com/java/api/ 
struts2.1.8.1英文api地址:  http://struts.apache.org/2.2.1/struts2-core/apidocs/
struts1.3.8英文api地址:    http://struts.apache.org/1.3.8/apidocs/index.html
struts1.3.10英文api地址:   1.3.10 http://struts.apache.org/1.x/apidocs/
spring2.5英文api地址:   http://static.springsource.org/spring/docs/2.5.x/api/index.html  
spring2.0英文api地址:   http://static.springsource.org/spring/docs/2.0.x/api/index.html   
spring2.5.2中文 reference地址:  http://ajava.org/online/spring2.5/html/
spring2.0中文 reference地址: http://ajava.org/online/spring2/html/
hibernate3.5.6 Final英文api地址: http://docs.jboss.org/hibernate/core/3.5/javadocs/  
hibernate3.5.6 Final中文reference地址: http://docs.jboss.org/hibernate/core/3.5/reference/zh-CN/html/ mysql5.1中文reference地址:http://ajava.org/online/mysql5.1/
css2中文手册:http://ajava.org/online/css2/
jquery1.3api:http://ajava.org/online/jQueryAPIhtml/
actionscript3语言和组件参考:http://ajava.org/online/ActionScript3/
ehcache1.7英文api:   http://ajava.org/online/ehcache-1.7.0-javadoc/
java语言编码规范中文版: http://doc.javanb.com/code-conventions-for-the-java-programming-language-zh/index.html  
log4j1.2.15 api :http://ajava.org/online/log4j-1.2.15-api/

tomcat5.5-doc:http://tomcat.apache.org/tomcat-5.5-doc/introduction.html
tomcat6.0-doc:http://tomcat.apache.org/tomcat-6.0-doc/introduction.html 
tomcat7.0-doc:http://tomcat.apache.org/tomcat-7.0-doc/index.html 
转载请注明出处!

posted @ 2011-08-20 17:06 GavinMiao 阅读(5144) | 评论 (1)编辑 收藏

写一个toJSON方法将Map对象转换成JSON字符串

/**
 * 
 * @author gavin
 *
 */
public class Gson{
public static String toJson(Map<String,String> map){
   Set<String> keys = map.keySet();
   String key = "";
   String value = "";
   StringBuffer jsonBuffer = new StringBuffer();
   jsonBuffer.append("{");    
   for(Iterator<String> it = keys.iterator();it.hasNext();){
       key =  (String)it.next();
       value = map.get(key);
       jsonBuffer.append(key+":"+value);
       if(it.hasNext()){
            jsonBuffer.append(",");
       }
   }
   jsonBuffer.append("}");
   return jsonBuffer.toString();
}
public static String toJson2(Map<String,String> map){
Set<Map.Entry<String, String>> entrys = map.entrySet();
Map.Entry<String, String> entry = null;
   String key = "";
   String value = "";
   StringBuffer jsonBuffer = new StringBuffer();
   jsonBuffer.append("{");    
   for(Iterator<Map.Entry<String, String>> it = entrys.iterator();it.hasNext();){
    entry =  (Map.Entry<String, String>)it.next();
    key = entry.getKey();
       value = entry.getValue();
       jsonBuffer.append(key+":"+value);
       if(it.hasNext()){
            jsonBuffer.append(",");
       }
   }
   jsonBuffer.append("}");
   return jsonBuffer.toString();
}
public static void main(String args[]){
Map<String,String> map = new TreeMap<String,String>();
map.put("1", "zhangyi");
map.put("2", "zhanger");
map.put("3", "zhangsan");
map.put("4", "zhangsi");
map.put("5", "zhangwu");
System.out.println(toJson(map));
System.out.println(toJson2(map));
}
}

运行结果:

{1:zhangyi,2:zhanger,3:zhangsan,4:zhangsi,5:zhangwu}
{1:zhangyi,2:zhanger,3:zhangsan,4:zhangsi,5:zhangwu}

posted @ 2011-08-19 00:23 GavinMiao 阅读(11724) | 评论 (3)编辑 收藏

oracle to_date、to_char、trunc

  select sysdate,to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) from dual   
  select sysdate,to_char(sysdate,’yyyy-mm-dd hh:mi:ss’) from dual   
  select sysdate,to_char(sysdate,’yyyy-ddd hh:mi:ss’) from dual 
  select sysdate,to_char(sysdate,’yyyy-mm iw-d hh:mi:ss’) from dual 
字符到日期操作   
  select to_date(’2003-10-17 21:15:37’,’yyyy-mm-dd hh24:mi:ss’) from dual
trunk函数的使用 
  select trunc(sysdate ,’YEAR’) from dual 
  select trunc(sysdate ) from dual 
  select to_char(trunc(sysdate ,’YYYY’),’YYYY’) from dual 

posted @ 2011-08-18 17:57 GavinMiao 阅读(592) | 评论 (0)编辑 收藏

oracle并交差

转载:http://chenhua-1984.iteye.com/blog/350354

集合操作有 并,交,差 3种运算。 

 union :得到两个查询结果的并集,并且自动去掉重复行。不会排序 

 union all:得到两个查询结果的并集,不会去掉重复行。也不会排序 

 intersect:得到两个查询结果的交集,并且按照结果集的第一个列进行排序 

 minus:得到两个查询结果的减集,以第一列进行排序 

例子: 

  下面是两个表:一个主修课程表,一个选修课程表。 

这个是主修课程表:minors 

     create table minors( 
         minor_id number primary key, 
         minor_name varchar2(30) not null, 
         credit_hour number(2) 
      ) 

插入3条记录:                

      insert into minors values(10101,'计算机原理',4) 
      insert into minors values(10201,'自动控制原理',3) 
      insert into minors values(10301,'工程制图原理',4) 

下面创建选修课程表minors2 

       create table minors2( 
         minor_id number primary key, 
         minor_name varchar2(30) not null, 
         credit_hour number(2) 
       ) 

插入两条记录: 
        insert into minors2 values(10201,'自动控制原理',3) 
       insert into minors2 values(10301,'工程制图原理',4)   

两个表使用union all:得到如下结果 

        select minor_id,minor_name,credit_hour from minors union all 
       select minor_id,minor_name,credit_hour from minors2 order by     credit_hour 

结果: 
    
MINOR_ID MINOR_NAME                     CREDIT_HOUR 
---------- ------------------------------ ----------- 
     10201 自动控制原理                             3 
     10201 自动控制原理                             3 
     10101 计算机原理                               4 
     10301 工程制图原理                             4 
     10301 工程制图原理                             4 

两个表使用union :得到如下结果 

select minor_id,minor_name,credit_hour from minors union 
    select minor_id,minor_name,credit_hour from minors2 order by credit_hour 

结果: 

MINOR_ID MINOR_NAME                     CREDIT_HOUR 
---------- ------------------------------ ----------- 
     10201 自动控制原理                             3 
     10101 计算机原理                               4 
     10301 工程制图原理                             4 

两个表使用intersect :得到如下结果 

     select minor_id,minor_name,credit_hour from minors intersect 
    select minor_id,minor_name,credit_hour from minors2 

结果: 

MINOR_ID MINOR_NAME                     CREDIT_HOUR 
---------- ------------------------------ ----------- 
     10201 自动控制原理                             3 
     10301 工程制图原理                             4 

两个表使用minus :得到如下结果 

    select minor_id,minor_name,credit_hour from minors minus 
    select minor_id,minor_name,credit_hour from minors2 

结果: 

MINOR_ID MINOR_NAME                     CREDIT_HOUR 
---------- ------------------------------ ----------- 
     10101 计算机原理                               4

posted @ 2011-08-18 17:34 GavinMiao 阅读(462) | 评论 (0)编辑 收藏

线程创建及调用方式

方法一:
public class MyThread  extends Tread{
    //覆盖Tread的run方法
    public void run(){
        。。。
    }
    //调用
    public static void main(String[] args){
        new MyTread().start();
    }
}
方法二:
public class MyTread implements Runnable{
    //实现Runnable的run方法
    public void run(){
        。。。
    }
    //调用
    public static void main(String[] args){
        new Tread(new MyTread()).start();
    }
}

posted @ 2011-08-14 23:21 GavinMiao 阅读(189) | 评论 (0)编辑 收藏

jsp scriptlet

jsp有中调用java方式:
 <%%>:scriptlet
<%!%>:声明
<%=%>:表达式
yourJspName_jsp.java对应 yourname.jsp
经验证,<%! code %>无论写在yourname.jsp的任何位置,code都处在yourJspName_jsp.java的成员声明中;
经验证, <% code %>无论写在yourname.jsp的任何位置,code都处在yourJspName_jsp.java的_jspService成员方法中;
经验证,<%=statement%>无论写在yourname.jsp的任何位置,statement都处在yourJspName_jsp.java的_jspService成员方法中的out.write(statement)中;
注意:
1.
用 <%!   %> 定义的变量,成为这个类的变量,用 <%!   %> 定义的方法也是如此,成为这个类的方法。
2.
<%...%> 中定义的变量其实是方法   _jspService()   的内部变量. 即类的局部变量。

posted @ 2011-08-10 19:05 GavinMiao 阅读(269) | 评论 (0)编辑 收藏

仅列出标题
共14页: First 上一页 6 7 8 9 10 11 12 13 14 下一页