存档

文章标签 ‘java’

java创建多级目录

2009年9月17日 joyboy 没有评论

在编程中,经常要用到创建多级目录,下面通过java来实现:

import java.io.*;
import java.util.*;
public class CreateFolders{
public static void main(String[] args) {
       String   path="c:/aaa/bbb/ccc";
       StringTokenizer   st=new   StringTokenizer(path,"/");
       String   path1=st.nextToken()+"/";
       String   path2 =path1;
       while(st.hasMoreTokens())
       {
             path1=st.nextToken()+"/";
             path2+=path1;
             File inbox   =   new File(path2);
             if(!inbox.exists())
                  inbox.mkdir();
       }
}
}

而用的最多的莫过于根据日期来创建目录进行文章的分类,如20090915用它来在E盘下创建一个E:/2009/09/17的目录而20090917又是一个字符串,须将它转化为:2009/09/17这种格式才好创建目录,下面是我实现的方法:

import java.util.*;
import java.text.*;
import java.io.*;
public class Createdirs{
public static void main(String[] args) {
        SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
        String dateString = "20090917";
        try {
             Date date = df.parse(dateString);
             String path="E:/"+new SimpleDateFormat("yyyy/MM/dd").format(date);
             //System.out.println(DateFormat.getDateInstance().format(date));
             StringTokenizer st=new StringTokenizer(path,"/");
             String path1=st.nextToken()+"/";
             String path2 =path1;
            while(st.hasMoreTokens())
            {
                    path1=st.nextToken()+"/";
                    path2+=path1;
                    File inbox = new File(path2);
                    if(!inbox.exists())
                        inbox.mkdir();
            }
            } catch (Exception ex) {
             System.out.println(ex.getMessage());
            }
}
}
分类: java 标签: , ,

java 将字符串转换为日期格式

2009年9月17日 joyboy 没有评论

有时候,我们获取到的日期类型可能为一字符串,如20090915;输出的时候,我们想转化为: 2009年09月15日 这种日期格式,那么我们怎么来将字符串转换为日期格式,下面是转换的代码:

import java.util.*;
import java.text.*;
import java.io.*;
class StrToDate
{
    public static void main(String[] args)
    {
        String dateString = "20090915";
        try {
             Date date=new SimpleDateFormat("yyyyMMdd").parse(dateString);
            //下面将字符串转换为日期格式后显示的格式是2009-09-15
             System.out.println(DateFormat.getDateInstance().format(date));
            //如果想换一种别的格式,可以用下面的办法,得到任何的日期格式都可以
            //输出的结果为2009/09/15
             System.out.println(new SimpleDateFormat("yyyy/MM/dd").format(date));
            //SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日");
            //输出的结果为2009年09月15日
             System.out.println(new SimpleDateFormat("yyyy年MM月dd日").format(date));
        } catch (Exception ex) {
             System.out.println(ex.getMessage());
        }
    }
}

通过上例代码,就可以转换成我们想要表示的日期格式了。

分类: java 标签: , ,

Eclipse中SVN图标不显示的问题

2009年9月4日 joyboy 没有评论

在用Eclipse做开发的时候,用到了svn版本控制器,这天当我打开Eclipse的时候,发现项目里面的所有文件前的版本号以及状态图标都不显示了,这是怎么回事,关掉Eclipse重新启动了一遍,还是不凑效。

可以确认的是当进行文件的更新提交的时候都可以正常进行,但就是不显示文件的版本号及状态图标,经过摸索 ,解决方法如下:

如果没有汉化是英文版的话,在菜单栏中:windows ->preferences->General->Appearance->Lable Decorations 勾选其中的 SVN 项,最后应用确认之后,文件的版本号及状态图标应该就显示出来了.
翻译成中文,就是在菜单栏中:窗口 ->首选项->常规->外观->标签装饰 勾选其中的 SVN 项,最后应用确认之后,文件的版本号及状态图标应该就显示出来了.

java中处理比long型还大的整数

2009年9月2日 joyboy 没有评论

从同事那得知他面试一个题目,题目为java中怎么处理比long型还大的整数

真的没点头绪,看了网上的一些解答,都没有给出实际的解答,网上很多的表示用数组来处理这个比long型还大的整数,到底怎么来实现运算,我也不知道,呵呵,曾今看过一篇文章,银行计算金额的时候,用的是bigdecimal类型,这种类型没有位数限制,是不是我们也可以利用这个来处理比long型还大的整数,答案是可以的,下面是计算方法:

//使用BigDecimal进行加、减、乘、除
void TestBigDecimal()
{
//别忘了导入java.math.BigDecimal
BigDecimal a=new BigDecimal(new String("123453243455535634535252345234677576252241234123523453664563634"));
BigDecimal b=new BigDecimal(new String("123453243455535634535252345234677576252241234123523453664563634"));
String c=a.add(b).toString();//加
String d=a.subtract(b).toString();//减
String e=a.multiply(b).toString();//乘
String f=a.divide(b).toString();//除
System.out.println(c);
System.out.println(d);
System.out.println(e);
System.out.println(f);
}

不过从还是从网上看到了一篇用string型来处理的比long型还大的整数运算,下面是具体运算类: 阅读全文…

分类: java 标签: , , , , ,

Java时间比较

2009年8月24日 joyboy 没有评论

在java编程中,对于时间的比较总是很多的,下面列出了常用的java时间比较的方法:

import java.text.*;
import java.util.*;

public class TimeCompare{

public static void main(String[] args){
   boolean flag = isDateBefore(\"2004-09-09 12:12:12\",\"2005-09-09 16:00:00\");
   System.out.println(flag);
   flag = isDateBefore(\"2006-09-09 01:01:01\",\"2005-09-09 16:00:00\");
   System.out.println(flag);
   flag = isDateBefore(\"2005-09-09 01:01:01\");
   System.out.println(flag);
}

//判断时间date1是否在时间date2之前
//时间格式 2005-4-21 16:16:34
public static boolean isDateBefore(String date1,String date2){
   try{
    DateFormat df = DateFormat.getDateTimeInstance();
    return df.parse(date1).before(df.parse(date2));
   }catch(ParseException e){
    System.out.print(\"[SYS] \" + e.getMessage());
    return false;
   }
}

//判断当前时间是否在时间date2之前
//时间格式 2005-4-21 16:16:34
public static boolean isDateBefore(String date2){
   try{
    Date date1 = new Date();
    DateFormat df = DateFormat.getDateTimeInstance();
    return date1.before(df.parse(date2));
   }catch(ParseException e){
    System.out.print(\"[SYS] \" + e.getMessage());
    return false;
   }
}

}

看到这里就知道怎么来判断比较时间格式为2005-4-21的了;下面是我仿照写的 一个静态方法,年前在工作中正好用到,呵呵!

//判断当前时间是否在时间date2之后或相等
//时间格式 2005-4-21

public static boolean isDateAfterOrEqual(String date2){
   boolean flag=false;
   try{
    DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
    Date date1 = new Date();
    if(fmt.parse(fmt.format(date1)).equals(fmt.parse(date2))||fmt.parse(fmt.format(date1)).after(fmt.parse(date2)))
      flag=true;

   }catch(ParseException e){
    System.out.print("[SYS] " + e.getMessage());
      flag = false;
   }
   return flag;
}
分类: java 标签: , ,