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. SaltStack的salt-api里如何指定用户执行cmd.script

    在杨威的协助下,命令行,API调用都完美搞定. 主要是RUNAS参数的位置,以及它作为CURL POST -D DATA的使用. salt '1.2.3.4' cmd.script "sal ...

  2. 使用HttpClient向服务器发送restful post请求

    直接上代码: public class RestClient { public static void main(String[] args) { String url = "http:// ...

  3. POJ_1220_Nmber Sequence

    上网查了一下进制转换的算法,发现一个性能比较好的:m进制转换成n进制,先用例如62进制ABC转换成10进制,就是用余位c(第一个数余位数值为0)乘以原基数from,加上A表示的数值,然后得到一个数,对 ...

  4. selectpicker下拉多选框ajax异步或者提前赋值=》默认值

    Bootstrap select多选下拉框赋值 success: function (data) { var oldnumber = new Array(); $.each(data, functio ...

  5. C++中new和不new的区别

    我们都知道C++中有三种创建对象的方法,如下: 复制代码代码如下: #include <iostream>using namespace std; class A{private:    ...

  6. ListView 的position和id的区别

    我们在使用ListView的时候,一般都会为ListView添加一个响应事件android.widget.AdapterView.OnItemClickListener.本文主要在于对OnItemCl ...

  7. linux上TCP connection timeout的原因查找

    linux上TCP connection timeout的原因查找 好久没有写文章了, 今天解决了一个网络连接超时的问题, 记录以备查看. 最近在线上nginx经常出现输出connection tim ...

  8. Google protobuf的安装及使用

    最近应为工作的需要,合作的部门提供了protobuf的接口,总结了一下使用的过程和方法如下: 下载protobuf-2.3.0: http://protobuf.googlecode.com/file ...

  9. C 语言 ----位运算

    位运算是指按二进制进行的运算.在系统软件中,常常需要处理二进制位的问题.C语言提供了6个位操作 运算符.这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类 ...

  10. 数据源加密-JDBC调用方式加密示例

    package test; import org.gjt.mm.mysql.Driver; import java.sql.*;import java.util.Properties;import j ...