﻿<?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-JAVA EVERY DAY-文章分类-Java study</title><link>http://www.blogjava.net/xyy198203/category/18580.html</link><description>DAY DAY UP , STUDY HARD</description><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 04:17:58 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 04:17:58 GMT</pubDate><ttl>60</ttl><item><title>java时间大全</title><link>http://www.blogjava.net/xyy198203/articles/97861.html</link><dc:creator>没有鱼的水</dc:creator><author>没有鱼的水</author><pubDate>Sun, 04 Feb 2007 09:15:00 GMT</pubDate><guid>http://www.blogjava.net/xyy198203/articles/97861.html</guid><wfw:comment>http://www.blogjava.net/xyy198203/comments/97861.html</wfw:comment><comments>http://www.blogjava.net/xyy198203/articles/97861.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xyy198203/comments/commentRss/97861.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xyy198203/services/trackbacks/97861.html</trackback:ping><description><![CDATA[
		<p> </p>
		<p>/**<br /> 日期类<br /> * @date   2003-12-04<br /> * @version 1.0<br /> */</p>
		<p>import java.util.*;<br />import java.text.*;<br />import java.util.Calendar;</p>
		<p>public class VeDate {<br /> /**<br />  * 获取现在时间<br />  * <br />  * @return 返回时间类型 yyyy-MM-dd HH:mm:ss<br />  */<br /> public static Date getNowDate() {<br />  Date currentTime = new Date();<br />  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");<br />  String dateString = formatter.format(currentTime);<br />  ParsePosition pos = new ParsePosition(8);<br />  Date currentTime_2 = formatter.parse(dateString, pos);<br />  return currentTime_2;<br /> }</p>
		<p> /**<br />  * 获取现在时间<br />  * <br />  * @return返回短时间格式 yyyy-MM-dd<br />  */<br /> public static Date getNowDateShort() {<br />  Date currentTime = new Date();<br />  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");<br />  String dateString = formatter.format(currentTime);<br />  ParsePosition pos = new ParsePosition(8);<br />  Date currentTime_2 = formatter.parse(dateString, pos);<br />  return currentTime_2;<br /> }</p>
		<p> /**<br />  * 获取现在时间<br />  * <br />  * @return返回字符串格式 yyyy-MM-dd HH:mm:ss<br />  */<br /> public static String getStringDate() {<br />  Date currentTime = new Date();<br />  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");<br />  String dateString = formatter.format(currentTime);<br />  return dateString;<br /> }</p>
		<p> /**<br />  * 获取现在时间<br />  * <br />  * @return 返回短时间字符串格式yyyy-MM-dd<br />  */<br /> public static String getStringDateShort() {<br />  Date currentTime = new Date();<br />  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");<br />  String dateString = formatter.format(currentTime);<br />  return dateString;<br /> }</p>
		<p> /**<br />  * 获取时间 小时:分;秒 HH:mm:ss<br />  * <br />  * @return<br />  */<br /> public static String getTimeShort() {<br />  SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");<br />  Date currentTime = new Date();<br />  String dateString = formatter.format(currentTime);<br />  return dateString;<br /> }</p>
		<p> /**<br />  * 将长时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss<br />  * <br />  * @param strDate<br />  * @return<br />  */<br /> public static Date strToDateLong(String strDate) {<br />  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");<br />  ParsePosition pos = new ParsePosition(0);<br />  Date strtodate = formatter.parse(strDate, pos);<br />  return strtodate;<br /> }</p>
		<p> /**<br />  * 将长时间格式时间转换为字符串 yyyy-MM-dd HH:mm:ss<br />  * <br />  * @param dateDate<br />  * @return<br />  */<br /> public static String dateToStrLong(java.util.Date dateDate) {<br />  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");<br />  String dateString = formatter.format(dateDate);<br />  return dateString;<br /> }</p>
		<p> /**<br />  * 将短时间格式时间转换为字符串 yyyy-MM-dd<br />  * <br />  * @param dateDate<br />  * @param k<br />  * @return<br />  */<br /> public static String dateToStr(java.util.Date dateDate) {<br />  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");<br />  String dateString = formatter.format(dateDate);<br />  return dateString;<br /> }</p>
		<p> /**<br />  * 将短时间格式字符串转换为时间 yyyy-MM-dd<br />  * <br />  * @param strDate<br />  * @return<br />  */<br /> public static Date strToDate(String strDate) {<br />  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");<br />  ParsePosition pos = new ParsePosition(0);<br />  Date strtodate = formatter.parse(strDate, pos);<br />  return strtodate;<br /> }</p>
		<p> /**<br />  * 得到现在时间<br />  * <br />  * @return<br />  */<br /> public static Date getNow() {<br />  Date currentTime = new Date();<br />  return currentTime;<br /> }</p>
		<p> /**<br />  * 提取一个月中的最后一天<br />  * <br />  * @param day<br />  * @return<br />  */<br /> public static Date getLastDate(long day) {<br />  Date date = new Date();<br />  long date_3_hm = date.getTime() - 3600000 * 34 * day;<br />  Date date_3_hm_date = new Date(date_3_hm);<br />  return date_3_hm_date;<br /> }</p>
		<p> /**<br />  * 得到现在时间<br />  * <br />  * @return 字符串 yyyyMMdd HHmmss<br />  */<br /> public static String getStringToday() {<br />  Date currentTime = new Date();<br />  SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd HHmmss");<br />  String dateString = formatter.format(currentTime);<br />  return dateString;<br /> }</p>
		<p> /**<br />  * 得到现在小时<br />  */<br /> public static String getHour() {<br />  Date currentTime = new Date();<br />  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");<br />  String dateString = formatter.format(currentTime);<br />  String hour;<br />  hour = dateString.substring(11, 13);<br />  return hour;<br /> }</p>
		<p> /**<br />  * 得到现在分钟<br />  * <br />  * @return<br />  */<br /> public static String getTime() {<br />  Date currentTime = new Date();<br />  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");<br />  String dateString = formatter.format(currentTime);<br />  String min;<br />  min = dateString.substring(14, 16);<br />  return min;<br /> }</p>
		<p> /**<br />  * 根据用户传入的时间表示格式，返回当前时间的格式 如果是yyyyMMdd，注意字母y不能大写。<br />  * <br />  * @param sformat<br />  *            yyyyMMddhhmmss<br />  * @return<br />  */<br /> public static String getUserDate(String sformat) {<br />  Date currentTime = new Date();<br />  SimpleDateFormat formatter = new SimpleDateFormat(sformat);<br />  String dateString = formatter.format(currentTime);<br />  return dateString;<br /> }</p>
		<p> /**<br />  * 二个小时时间间的差值,必须保证二个时间都是"HH:MM"的格式，返回字符型的分钟<br />  */<br /> public static String getTwoHour(String st1, String st2) {<br />  String[] kk = null;<br />  String[] jj = null;<br />  kk = st1.split(":");<br />  jj = st2.split(":");<br />  if (Integer.parseInt(kk[0]) &lt; Integer.parseInt(jj[0]))<br />   return "0";<br />  else {<br />   double y = Double.parseDouble(kk[0]) + Double.parseDouble(kk[1])<br />     / 60;<br />   double u = Double.parseDouble(jj[0]) + Double.parseDouble(jj[1])<br />     / 60;<br />   if ((y - u) &gt; 0)<br />    return y - u + "";<br />   else<br />    return "0";<br />  }<br /> }</p>
		<p> /**<br />  * 得到二个日期间的间隔天数<br />  */<br /> public static String getTwoDay(String sj1, String sj2) {<br />  SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");<br />  long day = 0;<br />  try {<br />   java.util.Date date = myFormatter.parse(sj1);<br />   java.util.Date mydate = myFormatter.parse(sj2);<br />   day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);<br />  } catch (Exception e) {<br />   return "";<br />  }<br />  return day + "";<br /> }</p>
		<p> /**<br />  * 时间前推或后推分钟,其中JJ表示分钟.<br />  */<br /> public static String getPreTime(String sj1, String jj) {<br />  SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");<br />  String mydate1 = "";<br />  try {<br />   Date date1 = format.parse(sj1);<br />   long Time = (date1.getTime() / 1000) + Integer.parseInt(jj) * 60;<br />   date1.setTime(Time * 1000);<br />   mydate1 = format.format(date1);<br />  } catch (Exception e) {<br />  }<br />  return mydate1;<br /> }</p>
		<p> /**<br />  * 得到一个时间延后或前移几天的时间,nowdate为时间,delay为前移或后延的天数<br />  */<br /> public static String getNextDay(String nowdate, String delay) {<br />  try {<br />   SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");<br />   String mdate = "";<br />   Date d = strToDate(nowdate);<br />   long myTime = (d.getTime() / 1000) + Integer.parseInt(delay) * 24<br />     * 60 * 60;<br />   d.setTime(myTime * 1000);<br />   mdate = format.format(d);<br />   return mdate;<br />  } catch (Exception e) {<br />   return "";<br />  }<br /> }</p>
		<p> /**<br />  * 判断是否润年<br />  * <br />  * @param ddate<br />  * @return<br />  */<br /> public static boolean isLeapYear(String ddate) {</p>
		<p>  /**<br />   * 详细设计： 1.被400整除是闰年，否则： 2.不能被4整除则不是闰年 3.能被4整除同时不能被100整除则是闰年<br />   * 3.能被4整除同时能被100整除则不是闰年<br />   */<br />  Date d = strToDate(ddate);<br />  GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();<br />  gc.setTime(d);<br />  int year = gc.get(Calendar.YEAR);<br />  if ((year % 400) == 0)<br />   return true;<br />  else if ((year % 4) == 0) {<br />   if ((year % 100) == 0)<br />    return false;<br />   else<br />    return true;<br />  } else<br />   return false;<br /> }</p>
		<p> /**<br />  * 返回美国时间格式 26 Apr 2006<br />  * <br />  * @param str<br />  * @return<br />  */<br /> public static String getEDate(String str) {<br />  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");<br />  ParsePosition pos = new ParsePosition(0);<br />  Date strtodate = formatter.parse(str, pos);<br />  String j = strtodate.toString();<br />  String[] k = j.split(" ");<br />  return k[2] + k[1].toUpperCase() + k[5].substring(2, 4);<br /> }</p>
		<p> /**<br />  * 获取一个月的最后一天<br />  * <br />  * @param dat<br />  * @return<br />  */<br /> public static String getEndDateOfMonth(String dat) {// yyyy-MM-dd<br />  String str = dat.substring(0, 8);<br />  String month = dat.substring(5, 7);<br />  int mon = Integer.parseInt(month);<br />  if (mon == 1 || mon == 3 || mon == 5 || mon == 7 || mon == 8<br />    || mon == 10 || mon == 12) {<br />   str += "31";<br />  } else if (mon == 4 || mon == 6 || mon == 9 || mon == 11) {<br />   str += "30";<br />  } else {<br />   if (isLeapYear(dat)) {<br />    str += "29";<br />   } else {<br />    str += "28";<br />   }<br />  }<br />  return str;<br /> }</p>
		<p> /**<br />  * 判断二个时间是否在同一个周<br />  * <br />  * @param date1<br />  * @param date2<br />  * @return<br />  */<br /> public static boolean isSameWeekDates(Date date1, Date date2) {<br />  Calendar cal1 = Calendar.getInstance();<br />  Calendar cal2 = Calendar.getInstance();<br />  cal1.setTime(date1);<br />  cal2.setTime(date2);<br />  int subYear = cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR);<br />  if (0 == subYear) {<br />   if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2<br />     .get(Calendar.WEEK_OF_YEAR))<br />    return true;<br />  } else if (1 == subYear &amp;&amp; 11 == cal2.get(Calendar.MONTH)) {<br />   // 如果12月的最后一周横跨来年第一周的话则最后一周即算做来年的第一周<br />   if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2<br />     .get(Calendar.WEEK_OF_YEAR))<br />    return true;<br />  } else if (-1 == subYear &amp;&amp; 11 == cal1.get(Calendar.MONTH)) {<br />   if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2<br />     .get(Calendar.WEEK_OF_YEAR))<br />    return true;<br />  }<br />  return false;<br /> }</p>
		<p> /**<br />  * 产生周序列,即得到当前时间所在的年度是第几周<br />  * <br />  * @return<br />  */<br /> public static String getSeqWeek() {<br />  Calendar c = Calendar.getInstance(Locale.CHINA);<br />  String week = Integer.toString(c.get(Calendar.WEEK_OF_YEAR));<br />  if (week.length() == 1)<br />   week = "0" + week;<br />  String year = Integer.toString(c.get(Calendar.YEAR));<br />  return year + week;<br /> }</p>
		<p> /**<br />  * 获得一个日期所在的周的星期几的日期，如要找出2002年2月3日所在周的星期一是几号<br />  * <br />  * @param sdate<br />  * @param num<br />  * @return<br />  */<br /> public static String getWeek(String sdate, String num) {<br />  // 再转换为时间<br />  Date dd = VeDate.strToDate(sdate);<br />  Calendar c = Calendar.getInstance();<br />  c.setTime(dd);<br />  if (num.equals("1")) // 返回星期一所在的日期<br />   c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);<br />  else if (num.equals("2")) // 返回星期二所在的日期<br />   c.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);<br />  else if (num.equals("3")) // 返回星期三所在的日期<br />   c.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);<br />  else if (num.equals("4")) // 返回星期四所在的日期<br />   c.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);<br />  else if (num.equals("5")) // 返回星期五所在的日期<br />   c.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);<br />  else if (num.equals("6")) // 返回星期六所在的日期<br />   c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);<br />  else if (num.equals("0")) // 返回星期日所在的日期<br />   c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);<br />  return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());<br /> }</p>
		<p> /**<br />  * 根据一个日期，返回是星期几的字符串<br />  * <br />  * @param sdate<br />  * @return<br />  */<br /> public static String getWeek(String sdate) {<br />  // 再转换为时间<br />  Date date = VeDate.strToDate(sdate);<br />  Calendar c = Calendar.getInstance();<br />  c.setTime(date);<br />  // int hour=c.get(Calendar.DAY_OF_WEEK);<br />  // hour中存的就是星期几了，其范围 1~7<br />  // 1=星期日 7=星期六，其他类推<br />  return new SimpleDateFormat("EEEE").format(c.getTime());<br /> }</p>
		<p> public static String getWeekStr(String sdate) {<br />  String str = "";<br />  str = VeDate.getWeek(sdate);<br />  if ("1".equals(str)) {<br />   str = "星期日";<br />  } else if ("2".equals(str)) {<br />   str = "星期一";<br />  } else if ("3".equals(str)) {<br />   str = "星期二";<br />  } else if ("4".equals(str)) {<br />   str = "星期三";<br />  } else if ("5".equals(str)) {<br />   str = "星期四";<br />  } else if ("6".equals(str)) {<br />   str = "星期五";<br />  } else if ("7".equals(str)) {<br />   str = "星期六";<br />  }<br />  return str;<br /> }</p>
		<p> /**<br />  * 两个时间之间的天数<br />  * <br />  * @param date1<br />  * @param date2<br />  * @return<br />  */<br /> public static long getDays(String date1, String date2) {<br />  if (date1 == null || date1.equals(""))<br />   return 0;<br />  if (date2 == null || date2.equals(""))<br />   return 0;<br />  // 转换为标准时间<br />  SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");<br />  java.util.Date date = null;<br />  java.util.Date mydate = null;<br />  try {<br />   date = myFormatter.parse(date1);<br />   mydate = myFormatter.parse(date2);<br />  } catch (Exception e) {<br />  }<br />  long day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);<br />  return day;<br /> }</p>
		<p> /**<br />  * 形成如下的日历 ， 根据传入的一个时间返回一个结构 星期日 星期一 星期二 星期三 星期四 星期五 星期六 下面是当月的各个时间<br />  * 此函数返回该日历第一行星期日所在的日期<br />  * <br />  * @param sdate<br />  * @return<br />  */<br /> public static String getNowMonth(String sdate) {<br />  // 取该时间所在月的一号<br />  sdate = sdate.substring(0, 8) + "01";</p>
		<p>  // 得到这个月的1号是星期几<br />  Date date = VeDate.strToDate(sdate);<br />  Calendar c = Calendar.getInstance();<br />  c.setTime(date);<br />  int u = c.get(Calendar.DAY_OF_WEEK);<br />  String newday = VeDate.getNextDay(sdate, (1 - u) + "");<br />  return newday;<br /> }</p>
		<p> /**<br />  * 取得数据库主键 生成格式为yyyymmddhhmmss+k位随机数<br />  * <br />  * @param k<br />  *            表示是取几位随机数，可以自己定<br />  */</p>
		<p> public static String getNo(int k) {</p>
		<p>  return getUserDate("yyyyMMddhhmmss") + getRandom(k);<br /> }</p>
		<p> /**<br />  * 返回一个随机数<br />  * <br />  * @param i<br />  * @return<br />  */<br /> public static String getRandom(int i) {<br />  Random jjj = new Random();<br />  // int suiJiShu = jjj.nextInt(9);<br />  if (i == 0)<br />   return "";<br />  String jj = "";<br />  for (int k = 0; k &lt; i; k++) {<br />   jj = jj + jjj.nextInt(9);<br />  }<br />  return jj;<br /> }</p>
		<p> /**<br />  * <br />  * @param args<br />  */<br /> public static boolean RightDate(String date) {</p>
		<p>  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");<br />  ;<br />  if (date == null)<br />   return false;<br />  if (date.length() &gt; 10) {<br />   sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");<br />  } else {<br />   sdf = new SimpleDateFormat("yyyy-MM-dd");<br />  }<br />  try {<br />   sdf.parse(date);<br />  } catch (ParseException pe) {<br />   return false;<br />  }<br />  return true;<br /> }</p>
		<p> /***************************************************************************<br />  * //nd=1表示返回的值中包含年度 //yf=1表示返回的值中包含月份 //rq=1表示返回的值中包含日期 //format表示返回的格式 1<br />  * 以年月日中文返回 2 以横线-返回 // 3 以斜线/返回 4 以缩写不带其它符号形式返回 // 5 以点号.返回<br />  **************************************************************************/<br /> <br /> public static String getNextMonthDay(String sdate, int m) {<br />  sdate = getOKDate(sdate);<br />  int year = Integer.parseInt(sdate.substring(0, 4));<br />  int month = Integer.parseInt(sdate.substring(5, 7));<br />  month = month + m;<br />  if (month &lt; 0) {<br />   month = month + 12;<br />   year = year - 1;<br />  } else if (month &gt; 12) {<br />   month = month - 12;<br />   year = year + 1;<br />  }<br />  String smonth = "";<br />  if (month &lt; 10)<br />   smonth = "0" + month;<br />  else<br />   smonth = "" + month;<br />  return year + "-" + smonth + "-10";<br /> }</p>
		<p> public static String getOKDate(String sdate) {<br />  if (sdate == null || sdate.equals(""))<br />   return getStringDateShort();</p>
		<p>  if (!VeStr.Isdate(sdate)) {<br />   sdate = getStringDateShort();<br />  }<br />  // 将“/”转换为“-”<br />  sdate = VeStr.Replace(sdate, "/", "-");<br />  // 如果只有8位长度，则要进行转换<br />  if (sdate.length() == 8)<br />   sdate = sdate.substring(0, 4) + "-" + sdate.substring(4, 6) + "-"<br />     + sdate.substring(6, 8);<br />  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");<br />  ParsePosition pos = new ParsePosition(0);<br />  Date strtodate = formatter.parse(sdate, pos);<br />  String dateString = formatter.format(strtodate);<br />  return dateString;<br /> }</p>
		<p> public static void main(String[] args) throws Exception {<br />  try {<br />   // System.out.print(Integer.valueOf(getTwoDay("2006-11-03 12:22:10",<br />   // "2006-11-02 11:22:09")));<br />  } catch (Exception e) {<br />   throw new Exception();<br />  }<br />  // System.out.println("sss");<br /> }<br />}<br /></p>
<img src ="http://www.blogjava.net/xyy198203/aggbug/97861.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xyy198203/" target="_blank">没有鱼的水</a> 2007-02-04 17:15 <a href="http://www.blogjava.net/xyy198203/articles/97861.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java文件的各种操作</title><link>http://www.blogjava.net/xyy198203/articles/96442.html</link><dc:creator>没有鱼的水</dc:creator><author>没有鱼的水</author><pubDate>Mon, 29 Jan 2007 02:15:00 GMT</pubDate><guid>http://www.blogjava.net/xyy198203/articles/96442.html</guid><wfw:comment>http://www.blogjava.net/xyy198203/comments/96442.html</wfw:comment><comments>http://www.blogjava.net/xyy198203/articles/96442.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xyy198203/comments/commentRss/96442.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xyy198203/services/trackbacks/96442.html</trackback:ping><description><![CDATA[/** <br /> * //FileOperate.java<br /> * 文件的各种操作<br /> * booby <a href="/xyy198203">http://www.blogjava.net/xyy198203</a><a href="http://blog.sina.com.cn/m/yangcai"></a><br /> * 文件操作 1.0<br /> */ <br /> <br />//package common; <br /> <br />import java.io.*; <br /> <br />public class FileOperate<br />{<br /> static boolean exitnow=false;<br /> static String aa,bb; <br />  public FileOperate() { <br />  } <br /> <br />  /** <br />   * 新建目录 <br />   */ <br />  public void newFolder(String folderPath) { <br />    try <br />    { <br />      String filePath = folderPath; <br />      filePath = filePath.toString(); <br />      File myFilePath = new File(filePath); <br />      if(!myFilePath.exists()) <br />      { <br />        myFilePath.mkdir();<br />      }<br />      System.out.println("新建目录操作 成功执行"); <br />    } <br />    catch(Exception e)<br />    { <br />      System.out.println("新建目录操作出错"); <br />      e.printStackTrace(); <br />    } <br />  } <br /> <br />  /** <br />   * 新建文件 <br />   */ <br />  public void newFile(String filePathAndName, String fileContent)<br />  { <br /> <br />    try<br />    { <br />      String filePath = filePathAndName; <br />      filePath = filePath.toString(); <br />      File myFilePath = new File(filePath); <br />      if (!myFilePath.exists())<br />      { <br />        myFilePath.createNewFile(); <br />      } <br />      FileWriter resultFile = new FileWriter(myFilePath); <br />      PrintWriter myFile = new PrintWriter(resultFile); <br />      String strContent = fileContent; <br />      myFile.println(strContent); <br />      resultFile.close(); <br />      System.out.println("新建文件操作 成功执行"); <br />    } <br />    catch (Exception e) { <br />      System.out.println("新建目录操作出错"); <br />      e.printStackTrace(); <br /> <br />    } <br /> <br />  } <br /> <br />  /** <br />   * 删除文件 <br />   */ <br />  public void delFile(String filePathAndName) { <br />    try { <br />      String filePath = filePathAndName; <br />      filePath = filePath.toString(); <br />      File myDelFile = new File(filePath); <br />      myDelFile.delete(); <br />      System.out.println("删除文件操作 成功执行"); <br />    } <br />    catch (Exception e) { <br />      System.out.println("删除文件操作出错"); <br />      e.printStackTrace(); <br /> <br />    } <br /> <br />  } <br /> <br />  /** <br />   * 删除文件夹 <br />   */ <br />  public void delFolder(String folderPath)<br />  { <br />    try<br />    { <br />      delAllFile(folderPath); //删除完里面所有内容 <br />      String filePath = folderPath; <br />      filePath = filePath.toString(); <br />      File myFilePath = new File(filePath); <br />      myFilePath.delete(); //删除空文件夹 <br />      System.out.println("删除文件夹操作 成功执行"); <br />    } <br />    catch (Exception e)<br />    { <br />      System.out.println("删除文件夹操作出错"); <br />      e.printStackTrace(); <br /> <br />    } <br /> <br />  } <br /> <br />  /** <br />   * 删除文件夹里面的所有文件 <br />   * @param path String 文件夹路径 如 c:/fqf <br />   */ <br />  public void delAllFile(String path)<br />  { <br />    File file = new File(path); <br />    if(!file.exists())<br />    { <br />      return; <br />    } <br />    if(!file.isDirectory())<br />    { <br />      return; <br />    } <br />    String[] tempList = file.list(); <br />    File temp = null; <br />    for (int i = 0; i &lt; tempList.length; i++)<br />    { <br />      if(path.endsWith(File.separator))<br />      { <br />        temp = new File(path + tempList[i]); <br />      } <br />      else<br />      { <br />        temp = new File(path + File.separator + tempList[i]); <br />      } <br />      if (temp.isFile())<br />      { <br />        temp.delete(); <br />      } <br />      if (temp.isDirectory())<br />      { <br />        delAllFile(path+"/"+ tempList[i]);//先删除文件夹里面的文件 <br />        delFolder(path+"/"+ tempList[i]);//再删除空文件夹 <br />      } <br />    }<br />          System.out.println("删除文件操作 成功执行");  <br />  } <br /> <br />  /** <br />   * 复制单个文件 <br />   * @param oldPath String 原文件路径 如：c:/fqf.txt <br />   * @param newPath String 复制后路径 如：f:/fqf.txt <br />   */ <br />  public void copyFile(String oldPath, String newPath) { <br />    try { <br />      int bytesum = 0; <br />      int byteread = 0; <br />      File oldfile = new File(oldPath); <br />      if (oldfile.exists())<br />      { //文件存在时 <br />        InputStream inStream = new FileInputStream(oldPath); //读入原文件 <br />        FileOutputStream fs = new FileOutputStream(newPath); <br />        byte[] buffer = new byte[1444]; <br />        int length; <br />        while ( (byteread = inStream.read(buffer)) != -1) { <br />          bytesum += byteread; //字节数 文件大小 <br />          System.out.println(bytesum); <br />          fs.write(buffer, 0, byteread); <br />        } <br />        inStream.close(); <br />      }<br />            System.out.println("删除文件夹操作 成功执行");  <br />    } <br />    catch (Exception e) { <br />      System.out.println("复制单个文件操作出错"); <br />      e.printStackTrace(); <br /> <br />    } <br /> <br />  } <br /> <br />  /** <br />   * 复制整个文件夹内容 <br />   * @param oldPath String 原文件路径 如：c:/fqf <br />   * @param newPath String 复制后路径 如：f:/fqf/ff <br />   */ <br />  public void copyFolder(String oldPath, String newPath) { <br /> <br />    try<br />    { <br />      (new File(newPath)).mkdirs(); //如果文件夹不存在 则建立新文件夹 <br />      File a=new File(oldPath); <br />      String[] file=a.list(); <br />      File temp=null; <br />      for (int i = 0; i &lt; file.length; i++)<br />      { <br />        if(oldPath.endsWith(File.separator))<br />        { <br />          temp=new File(oldPath+file[i]); <br />        } <br />        else{ <br />          temp=new File(oldPath+File.separator+file[i]); <br />        } <br /> <br />        if(temp.isFile())<br />        { <br />          FileInputStream input = new FileInputStream(temp); <br />          FileOutputStream output = new FileOutputStream(newPath + "/" + <br />              (temp.getName()).toString()); <br />          byte[] b = new byte[1024 * 5]; <br />          int len; <br />          while ( (len = input.read(b)) != -1)<br />          { <br />            output.write(b, 0, len); <br />          } <br />          output.flush(); <br />          output.close(); <br />          input.close(); <br />        } <br />        if(temp.isDirectory())<br />        {//如果是子文件夹 <br />          copyFolder(oldPath+"/"+file[i],newPath+"/"+file[i]); <br />        } <br />      }<br />            System.out.println("复制文件夹操作 成功执行");  <br />    } <br />    catch (Exception e) { <br />      System.out.println("复制整个文件夹内容操作出错"); <br />      e.printStackTrace(); <br /> <br />    } <br /> <br />  } <br /> <br />  /** <br />   * 移动文件到指定目录 <br />   * @param oldPath String 如：c:/fqf.txt <br />   * @param newPath String 如：d:/fqf.txt <br />   */ <br />  public void moveFile(String oldPath, String newPath) { <br />    copyFile(oldPath, newPath); <br />    delFile(oldPath); <br /> <br />  } <br /> <br />  /** <br />   * 移动文件到指定目录 <br />   * @param oldPath String 如：c:/fqf.txt <br />   * @param newPath String 如：d:/fqf.txt <br />   */ <br />  public void moveFolder(String oldPath, String newPath) { <br />    copyFolder(oldPath, newPath); <br />    delFolder(oldPath); <br /> <br />  }<br />  <br />  public static void main(String args[])<br />  {<br />   System.out.println("使用此功能请按[1]  功能一：新建目录");<br />   System.out.println("使用此功能请按[2]  功能二：新建文件");<br />   System.out.println("使用此功能请按[3]  功能三：删除文件");<br />   System.out.println("使用此功能请按[4]  功能四：删除文件夹");<br />   System.out.println("使用此功能请按[5]  功能五：删除文件夹里面的所有文件");<br />   System.out.println("使用此功能请按[6]  功能六：复制文件");<br />   System.out.println("使用此功能请按[7]  功能七：复制文件夹的所有内容");<br />   System.out.println("使用此功能请按[8]  功能八：移动文件到指定目录");<br />   System.out.println("使用此功能请按[9]  功能九：移动文件夹到指定目录");<br />   System.out.println("使用此功能请按[10] 退出程序");<br />   <br /> while(!exitnow)<br /> {<br />    FileOperate fo=new FileOperate();<br />    try<br />    {<br />    BufferedReader Bin=new BufferedReader(new InputStreamReader(System.in));<br />    String a=Bin.readLine();<br />    int b=Integer.parseInt(a);<br />    <br />    switch(b) <br />    {<br />     case 1:System.out.println("你选择了功能一  请输入目录名");  <br />        aa=Bin.readLine();<br />        fo.newFolder(aa);<br />        break;<br />     case 2:System.out.println("你选择了功能二  请输入文件名");  <br />        aa=Bin.readLine();<br />        System.out.println("请输入在"+aa+"中的内容");<br />        bb=Bin.readLine();<br />        fo.newFile(aa,bb);<br />        break;<br />     case 3:System.out.println("你选择了功能三  请输入文件名");  <br />        aa=Bin.readLine();<br />        fo.delFile(aa);<br />        break;<br />     case 4:System.out.println("你选择了功能四  请输入文件名");  <br />        aa=Bin.readLine();<br />        fo.delFolder(aa);<br />        break;<br />     case 5:System.out.println("你选择了功能五  请输入文件名");  <br />        aa=Bin.readLine();<br />        fo.delAllFile(aa);<br />        break;   <br />     case 6:System.out.println("你选择了功能六  请输入文件名");  <br />        aa=Bin.readLine();<br />        System.out.println("请输入目标文件名"); <br />        bb=Bin.readLine();<br />        fo.copyFile(aa,bb);<br />        break;<br />     case 7:System.out.println("你选择了功能七  请输入源文件名");  <br />        aa=Bin.readLine();<br />        System.out.println("请输入目标文件名"); <br />        bb=Bin.readLine();<br />        fo.copyFolder(aa,bb);<br />        break;        <br />     case 8:System.out.println("你选择了功能八  请输入源文件名");  <br />        aa=Bin.readLine();<br />        System.out.println("请输入目标文件名"); <br />        bb=Bin.readLine();<br />        fo.moveFile(aa,bb);<br />        break;<br />       case 9:System.out.println("你选择了功能九  请输入源文件名");  <br />        aa=Bin.readLine();<br />        System.out.println("请输入目标文件名"); <br />        bb=Bin.readLine();<br />        fo.moveFolder(aa,bb);<br />        break;        <br />     case 10:exitnow=true;<br />         System.out.println("程序结束，请退出");<br />        break;<br />     default:System.out.println("输入错误.请输入1-10之间的数");               <br />     }<br />    <br />    <br />    System.out.println("请重新选择功能");<br />    <br />    <br />    }<br />    catch(Exception e)<br />    {<br />    System.out.println("输入错误字符或程序出错");<br />    }<br />    <br /> }   <br /> } <br />}<br /><img src ="http://www.blogjava.net/xyy198203/aggbug/96442.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xyy198203/" target="_blank">没有鱼的水</a> 2007-01-29 10:15 <a href="http://www.blogjava.net/xyy198203/articles/96442.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Applet与Servlet通讯</title><link>http://www.blogjava.net/xyy198203/articles/87477.html</link><dc:creator>没有鱼的水</dc:creator><author>没有鱼的水</author><pubDate>Wed, 13 Dec 2006 06:27:00 GMT</pubDate><guid>http://www.blogjava.net/xyy198203/articles/87477.html</guid><wfw:comment>http://www.blogjava.net/xyy198203/comments/87477.html</wfw:comment><comments>http://www.blogjava.net/xyy198203/articles/87477.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xyy198203/comments/commentRss/87477.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xyy198203/services/trackbacks/87477.html</trackback:ping><description><![CDATA[Applet与Servlet之间的联系一般是间接的，即页面请求由浏览器发送给Servlet，作为回答，Servlet将结果生成HTML文档发送给浏览器。很多时候在Servlet与Applet之间建立直接的联系是没有必要的，但如果要显示一些实时的动态数据，如聊天室窗口、新闻显示、股市行情等，建立两者之间的直接联系就很有用了。特别地，在较为复杂的分布式Java应用中，这种通讯更是必不可少。在客户端Java程序与服务器端Java程序之间建立这种复杂的交互方式仅仅使用Servlet与Applet  API是不够的，本文为你介绍和比较四种通讯方式：通过HTML页面传递参数，用java.net包的网络功能建立直接网络连接，远程方法调用（RMI）与CORBA。    <br />　　  一、通过HTML页面传递Applet参数    <br /> <br />　　  通过HTML页面传递参数是在Servlet与Applet之间建立联系最为常用的方法。Servlet只要把传递给Applet的参数写入HTML页面就可以了。这种通讯是单向的，用于实现Servlet对Applet的控制。其实现方法类如：    <br />//  doGet()方法生成一个包含Applet的HTML页面,    <br />//  该Applet需要一个Data参数    <br /> <br />public  void  doGet(HttpServletRequest  request,HttpServletResponse  response)    <br />throws  ServletException,  IOException  {    <br />response.setContentType("text/html");    <br />PrintWriter  out  =  new  PrintWriter  (  response.getOutputStream());    <br />out.write("&lt;  HTML&gt;&lt;  HEAD&gt;&lt;  TITLE&gt;  HTML  Example&lt;  /TITLE&gt;  &lt;  /HEAD&gt;&lt;  BODY&gt;");    <br />out.write("Servlet通过PARAM标记传递参数给Applet.  ");    <br />out.write("&lt;  APPLET  code=\"SimpleApplet\"  width=\"225\"  height=\"149\"&gt;");    <br />//  写入PARAM标记    <br />out.write("&lt;  param  name=\"Data\"  value=\"");    <br />out.write(java.text.DateFormat.getDateInstance().format(new  java.util.Date()));    <br />out.write("\"&gt;&lt;  /APPLET&gt;&lt;  /BODY&gt;&lt;  /HTML&gt;");    <br />out.close();    <br />}    <br /> <br />　　  这种方法很简单，但它有两个缺点。首先，所有参数都是静态的，即一旦HTML页面发送完成，要更新其中部分数据就很困难了。虽然可以使用HTTP的刷新机制，但这种刷新需要重新下载整个页面，效率是很低的。第二，如果需要传递给Applet的数据量很大或数据结构很复杂，就会使得HTML页面过于庞大或复杂了。    <br /> <br />　　  二、用java.net包建立双向通讯    <br /> <br />　　  第二种方法是利用java.net包提供的网络能力。以有连接流通讯方式为例，在服务器端的操作为一般为：    <br /> <br />　　  ⑴  创建一个ServerSocket对象，在指定端口监听客户端发来的请求。    <br /> <br />　　  ⑵  在接收到请求时accept()方法将返回一个Socket对象。    <br /> <br />　　  ⑶  用上述Socket对象创建输入、输出流对象。    <br /> <br />　　  ⑷  通过输入、输出流与客户交互。    <br /> <br />　　  ⑸  交互完毕，关闭输入、输出流与Socket。    <br /> <br />　　  ⑹  服务程序运行结束，关闭ServerSocket。    <br /> <br />　　  实现代码代码类如:    <br /> <br />try{    <br /> <br />boolean  flag=true;    <br />Socket  clientSocket=null;    <br /> <br />ServerSocket  serverSocket  =  new  ServerSocket(0);    <br />System.out.println("Server  listen  on:  "  +serverSocket.getLocalPort());    <br />while(flag){    <br />clientSocket=serverSocket.accept();    <br />DataInputStream  is=new  DataInputStream(  new  bufferedInputStream(clientSocket.getInputStream()));    <br />PrintStream  os=new  PrintStream(  new  bufferedOutputStream(clientSocket.getOutputStream()));    <br />//  处理Applet请求    <br />os.close();    <br />is.close();    <br />clientSocket.close();    <br />}    <br />serverSocket.close();    <br />}catch(  IOException  e){    <br />System.err.println("  Exception:  "+e);    <br />}    <br /> <br />　　  在客户端的操作为：    <br /> <br />　　  ⑴  创建Socket对象建立与服务器的连接。    <br /> <br />　　  ⑵  用该Socket对象创建输入、输出流。    <br /> <br />　　  ⑶  与服务器交互。    <br /> <br />　　  ⑷  交互完毕，关闭输入、输出流与Socket。    <br /> <br />　　  实现代码类如:    <br />try  {    <br />Socket  clientSocket  =new  Socket("serverName",7);    <br />OutputStream  os=clientSocket.getOutputStream();    <br />DataInputStream  is=new  DataInputStream(  clientSocket.getInputStream());    <br />//  其它操作.    <br />os.close();    <br />is.close();    <br />clientSocket.close();    <br />}catch(Exception  e){    <br />System.err.println("Exception:"+e);    <br />}    <br /> <br />　　  这种方法只依赖于标准的Java网络支持，不需要用到附加的软件包或工具，  因此显得相当简洁和灵活，易于实现某些特殊的需要。但在另一方面，服务器端对进入请求以及客户端对返回结果的分析工作量较大。如果服务器端要执行大量的操作，可以考虑使用RMI。    <br /><img src ="http://www.blogjava.net/xyy198203/aggbug/87477.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xyy198203/" target="_blank">没有鱼的水</a> 2006-12-13 14:27 <a href="http://www.blogjava.net/xyy198203/articles/87477.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>