package cn.hncu.day9;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.Properties;

public class PropertiesDemo {

//注意,a.properties文件应该放在项目根目录,即和src,bin文件夹并列的地方

public static void main(String[] args) {
//掌握Properties,只要会如下几个方法就玩转: Properties(), load(), store(), setProperty(),getProperty()
//1 Properties()
Properties p = new Properties();

//2 load()
try {
InputStream in = new FileInputStream("a.properties");
p.load(in);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

//3 getProperty()
System.out.println( p.getProperty("size") );
System.out.println( p.getProperty("times") );
System.out.println( p.getProperty("name") );//property文件中的汉字需要转码,否则会乱码,而MyEclipse中的property文件编辑器自动会帮我们做的

//4 setProperty()
p.setProperty("size", "123");//注意,key和value都是文本
int v = Integer.parseInt(p.getProperty("times"))+123;
p.setProperty("times", ""+v);

//5 store()
try {
OutputStream out = new FileOutputStream("a.properties");
p.store(out, "湖南城院");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

System.out.println("-----------------");
//罗列出系统(Java虚拟机)的属性
Properties p2 = System.getProperties();
Enumeration e = p2.propertyNames();
while(e.hasMoreElements()){
String key = (String) e.nextElement();
String value = p2.getProperty(key);
System.out.println(key+"="+value);
}
}

}

-----------------------------------------------------------------

package cn.hncu.day9;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;

import javax.swing.JOptionPane;

public class AppTryTimes {

public static void main(String[] args) {
if( !countTimes() ){
JOptionPane.showMessageDialog(null, "软件试用次数已满,请注册!");
return;
}

System.out.println("程序正常运行....");
}

private static boolean countTimes() {
Properties p = new Properties();
int count = 0;
try {
File file = new File("times.uni");
if(!file.exists()){
file.createNewFile();
}

FileInputStream fin = new FileInputStream("times.uni");
p.load(fin);

String strValue = p.getProperty("count");
if(strValue!=null){
count = Integer.parseInt(strValue);
if(count>=5){
return false;
}
}
count++;
System.out.println("软件已经运行"+count+"次!");
p.setProperty("count", ""+count);

//new FileOutputStream(file)---这一句运行时会把原来的旧文件充掉
p.store(new FileOutputStream(file),"");

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

return true;
}

}

------------------------------------------------------------------------

package cn.hncu.day9;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateDemo {
public static void main(String[] args) {
//demo1();//计算程序耗时
demo2();
}

private static void demo2() {
//日期计算
Date d = new Date();//当前日期时间(对象)
System.out.println(d);
long t = 5*24*60*60*1000 + d.getTime();//5天以后的日期对象的精确值
d.setTime(t);

//格式化: 日期对象-->日期的字符串
//DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
DateFormat df = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss SS毫秒");
String str = df.format(d);
System.out.println("str:"+str);

//解析: 日期的字符串-->日期对象
DateFormat df2 = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
try {
Date d2 = df2.parse("08/08/2008 08:08:08");
System.out.println(d2);
System.out.println( df.format(d2) );
} catch (ParseException e) {
e.printStackTrace();
}

}

public static void demo1(){
Date d = new Date();//对象,内部存储的精确值:1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数
long t = d.getTime();//获取其中的精确值
for(int i=0;i<1000;i++){
System.out.println(i);
}
Date d2 = new Date();
long t2 = d2.getTime();
System.out.println("本程序的运行时间:"+ (t2-t));
}
}

-------------------------------------------------------------------------------------------------------------

package cn.hncu.day9;

import java.util.Calendar;
import java.util.Date;

public class CalendarDemo {

public static void main(String[] args) {
Calendar c = Calendar.getInstance();
System.out.println( c.get(Calendar.YEAR) );//获取年份
System.out.println( c.get(Calendar.MONTH) +1 );//注意,月份要加1
System.out.println( c.get(Calendar.DAY_OF_MONTH) );//获取日期

//显示星期几
//System.out.println( c.get(Calendar.DAY_OF_WEEK)-1 );//我们的星期一是它的第2天,因为它的第1天是从星期日开始的
System.out.println( getWeekDay(c) );

//日期计算
c.set(Calendar.YEAR, 3000);//给日历中的某个字段直接设置值
System.out.println( getWeekDay(c) );
//System.out.println(new Date().getTime());
c.setTime( new Date(1465215452531L+5*24*60*60*1000) );
System.out.println( c.get(Calendar.DAY_OF_MONTH) );//获取日期
System.out.println( getWeekDay(c) );

Calendar c2 = Calendar.getInstance();
//c2.add(Calendar.DAY_OF_MONTH,100);//100天后的日期(日历)对象
c2.add(Calendar.DAY_OF_MONTH,-100);//100天以前的日期(日历)对象
System.out.println( c2.get(Calendar.MONTH)+1 );
System.out.println( getWeekDay(c2) );

}

/*自己写的一个正确显示星期几的小工具*/
public static String getWeekDay(Calendar c){
String strs[]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
return strs[ c.get(Calendar.DAY_OF_WEEK)-1 ];
}

}

Properties文件,Data,Calendar类的使用的更多相关文章

  1. properties文件读写工具类

    java代码: import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; ...

  2. properties文件读取工具类

    项目中防止硬编码,经常会将一些与业务相关的数据存在properties文件中,根据不同的key加载不同的数据,所以就会有读取properties文件的东西,这篇文章仅为了以后copy方便写的. 1.添 ...

  3. Properties文件工具读取类

    import java.io.IOException;import java.io.InputStream;import java.util.Properties; public class Comm ...

  4. properties文件读写工具类PropertiesUtil.java

    import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import ...

  5. SpringBoot连接Oracle报错,找不到驱动类,application.properties文件中驱动类路径为红色

    pom.xml文件: <!-- oracle odbc --> <dependency> <groupId>com.oracle</groupId> & ...

  6. 161216、使用spring的DefaultResourceLoader自定义properties文件加载工具类

    import java.io.IOException; import java.io.InputStream; import java.util.NoSuchElementException; imp ...

  7. Properties文件工具类的使用--获取所有的键值、删除键、更新键等操作

    有时候我们希望处理properties文件,properties文件是键值对的文件形式,我们可以借助Properties类操作. 工具类如下:(代码中日志采用了slf4j日志) package cn. ...

  8. 使用spring的DefaultResourceLoader自定义properties文件加载工具类

    转自:https://www.cnblogs.com/zrbfree/p/6230957.html import java.io.IOException; import java.io.InputSt ...

  9. 五种方式让你在java中读取properties文件内容不再是难题

    一.背景 最近,在项目开发的过程中,遇到需要在properties文件中定义一些自定义的变量,以供java程序动态的读取,修改变量,不再需要修改代码的问题.就借此机会把Spring+SpringMVC ...

随机推荐

  1. bzoj 3065: 带插入区间K小值 替罪羊树 && AC300

    3065: 带插入区间K小值 Time Limit: 60 Sec  Memory Limit: 512 MBSubmit: 1062  Solved: 253[Submit][Status] Des ...

  2. keychain 多应用共享数据

    地址:http://blog.csdn.net/jerryvon/article/details/16843065 补充: 若plist跟项目不在同一级目录下,可通过XXX/xxx.plist的方式设 ...

  3. XSS解决方案系列之四:关于编码

    本文准备说明以下几个问题: 1. 关于重复编码的问题 2. 关于编码的多种形式的问题 3. 关于编码的几个常见问题 [说明] 本文所述编码是指encode,可以理解为转义,而不是编程序写代码. 编码或 ...

  4. VC提交网页表单(一共八篇)

    VC提交网页表单-自动评论留言(1)http://blog.csdn.net/wangningyu/article/details/4526357VC提交网页表单-自动评论留言(2)http://bl ...

  5. DataSet用法详细

    转自:http://www.cnblogs.com/zeroone/archive/2012/06/08/2541299.html DataSet用法详细 一.特点介绍 1.处理脱机数据,在多层应用程 ...

  6. Visual Studio 2015 企业版 官方中文版.iso

    Visual Studio 2015 企业版 官方中文版.iso 附上链接 不要积分 谢谢: http://download.csdn.net/detail/onebelowzero2012/9561 ...

  7. android学习之BUG——The connection to adb is down, and a severe error has occured.

    开始--运行--cmd 进入命令提示符 输入netstat -ano 即可看到所有连接的PID 之后在任务管理器中找到这个PID所对应的程序如果任务管理器中没有PID这一项,可以在任务管理器中选&qu ...

  8. Fiddler基本用法以及如何对手机抓包

    一.Fiddler是什么? ·一种Web调试工具. ·可以记录所有客户端和服务器的http和https请求. ·允许监视.设置断点.修改输入输出数据. 官方文档(英文):http://docs.tel ...

  9. ACM2031_进制转换(使用了递归,代码超少的啦!!)

    进制转换 Problem Description 输入一个十进制数N,将它转换成R进制数输出.   Input 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R& ...

  10. 一段网上java常见escape和unescape方法的BUG

    escape编码和unescape编码,就是将一个字符转换为16进制unicode编码,前面加%字符进行标识. 此处不再多做解释,参考这里:http://www.jb51.net/article/23 ...