Java的常用类---Date与File

包装类

/**
 * 包装类
 * @author Administrator
 *
 */
public class Test01 {
	public static void main(String[] args) {
		//将基本数据类型包装为对象
		Integer i = new Integer(1000);
		System.out.println("("+Integer.MAX_VALUE+")("+Integer.MIN_VALUE+")");
	}
}

    1)为什么会有包装类?

    Java并不是一门纯面向对象的语言,其基本数据类型并不是对象,而有些时候需要将这些数据转变为对象进行操作,由此有了包装类,即将基本数据类型转变为对象。

    2)包装类有哪些?

    (1) 整数型 byte--->Byte、short--->Short、int--->Integer、long--->Long

    (2)字符型 char--->Character

    (3)浮点型 float--->Float、double--->Double

    (4)布尔型 boolean--->Boolean

    3)什么是自动装箱、拆箱?缓存边界问题?

/**
 * 测试自动装箱、拆箱
 * @author Administrator
 *
 */
public class Test02 {
	public static void main(String[] args) {
		Integer i = new Integer(1000);
		//jdk5.0之后,编译器自动改进代码,自动装箱,1000--->new Integer(1000)
		Integer i1 = 1000; 
		//编译器改进,new Integer(1000)--->new Integer(1000).intValue()
		int b = new Integer(1000);
		
		Integer c = 1234;
		Integer d = 1234;
		//内容相同,c d 为对象,对象地址不同,返回FALSE
		System.out.println(c==d);
		//比较内容
		System.out.println(c.equals(d));
		
		Integer e = 127;
		Integer f = 127;
		//为节省缓存,在[-128-127]之间的数仍当做基本数据类型处理,提高效率
		System.out.println(e==f);
		//比较内容
		System.out.println(e.equals(f));
	}
}

时间类 ---> Date

    Date类的一般用法

import java.util.Date;

/**
 * 测试时间类的用法
 * @author Administrator
 *
 */
public class TestDate01 {
	public static void main(String[] args) {
		//不传值表示当前系统时间
		Date d = new Date();
		long t = System.currentTimeMillis();
		System.out.println(t);
		
		Date d2 = new Date(1000);
		System.out.println(d2.toGMTString());
		
		//getTime()方法获取对应的毫秒数
		System.out.println(d2.getTime());
		
		//数字默认类型为int,要想表示长整型的数,后面要加L/l
		long t1 = 1528522058178L ; 
		Date d3 = new Date(t);
		System.out.println(d3);
	}
}

      时间类格式化 ---> DateFormat将字符串解析为时间对象  

/**
 * 解析字符串为时间对象
 * 定义的格式要与待解析字符串格式一致
 */
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class TestDateFormat {
	public static void main(String[] args) {
		DateFormat df  = new SimpleDateFormat("yyyy-MM-dd  hh:mm:ss");//定义格式
		
		Date d = new Date(16546412216346L);
		String str = df.format(d);//将时间对象转化为字符串
		System.out.println(str);
		
		String str1 = "2494-5-2 05:36:56";//格式一直
		DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");//格式一直,否则无法解析
		try {
			Date d2 = df1.parse(str1);//解析为时间对象
			System.out.println(d2.toString());
			System.out.println(d2.getTime());
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
}

    Calendar类的常用实现类 ---> GregorianCalendar

/**
 * 测试日期类
 * 1月为0,12月为11
 * 周日为1,周六为7
 */
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class TestCalendar {
	public static void main(String[] args) {
		Calendar c = new GregorianCalendar();
	//	c.set(2010, Calendar.FRIDAY, 25, 11,36, 10);
		c.set(Calendar.YEAR, 2009);
		c.setTime(new Date(1000));
		long t = c.getTimeInMillis();
		Date d = new Date(t);
		System.out.println(d);
		System.out.println(c.get(Calendar.YEAR));
		
		//测试日期计算
		c.add(Calendar.YEAR, 10);
		System.out.println(c.get(Calendar.YEAR));
}
}

    Calendar类的应用 ---> 可视化日历

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;

/**
 * 可视化日历
 * 有一些问题
 * 每个月一号怎么确定周几,从那一天开始显示,之前显示制表符
 * 使用变量,值的变化,方法内部与外部,需要判断变量的变化
 * 获取一个月最多有多少天,使用c.getActualMaximum(Calendar.DATE)方法
 * @author Administrator
 *
 */
public class TestCalendar01 {
	public static void main(String[] args) {

		System.out.println("输入日期:格式为(xxxx-yy-dd)");
		Scanner sc = new Scanner(System.in);
		String str = sc.next();
		//格式化日期处理
		DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
		try {
			//解析字符串为时间对象
			Date d = df.parse(str);
			Calendar c = new GregorianCalendar();
			c.setTime(d);
			int day_now = c.get(Calendar.DATE); //获取当前日期
			c.set(Calendar.DAY_OF_MONTH, 1);//设置日期为当月1号
			/*
			 * int day_of_week = c.get(Calendar.DAY_OF_WEEK);//在这里使用赋值变量后面不能换行
			 * int day_of_month = c.get(Calendar.DAY_OF_MONTH);
			 */

			System.out.println("日\t一\t二\t三\t四\t五\t六");

			/*
			 * if (month==1) { if (year%4==0) { number_of_month = 29;
			 * }else{number_of_month = 28; } }else if
			 * (month==4||month==6||month==9||month==11) { number_of_month = 30;
			 * }else { number_of_month = 31; }
			 */

			for (int i = 1; i < c.get(Calendar.DAY_OF_WEEK); i++) {
				System.out.print("\t");
			}
			// 直接用c.getActualMaximum(Calendar.DATE)做循环,为什么会每个月都是31
			
			int maxDay = c.getActualMaximum(Calendar.DATE);
			for (int i = 1; i <= maxDay; i++) {
				if (i==day_now) {
					System.out.print("*");
				}
				System.out.print(i + "\t");
				int day_of_week = c.get(Calendar.DAY_OF_WEEK);
				if (day_of_week == Calendar.SATURDAY) {
					System.out.print('\n');
				}
				c.add(Calendar.DATE, 1);

			}

		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
}

文件操作 ---> File类

    File类的一般用法

import java.io.File;
import java.io.IOException;

/**
 * 测试File类
 * File类可以表示文件和目录
 * @author Administrator
 *
 */
public class TsetFile {
	public static void main(String[] args) {
		File f1 = new File("E:/FLUNT WorkSpace/heat/a.cas");//一个文件的具体路径
		File f2 = new File("E:/CAD/CAD2010");//一个文件的目录
		File f3 = new File(f2,"en-USAc");//重载的构造方法,一个目录下的子文件/目录File(parent, child)
		//创建一个文件/目录
		File f4 = new File("E:/FLUNT WorkSpace/heat/s.cas");
		File f5 = new File("E:/FLUNT WorkSpace/heat/hss/ll/ss");
		//创建目录,单数mkdir()为当目录级别仅增加一级(如果要生成多级目录,需要用到复数mkdirs(),而且使用mkdir()一级目录也不能增加),
		//复数mkdirs()可一次性创建多级目录
		f5.mkdir();
		f5.mkdirs();
		try {
			//创建文件
			f4.createNewFile();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		f4.delete();
		if (f1.isFile()) {//判断f1是否为一个文件,具体文件
			System.out.println("f1 is File");
		}else{
			System.out.println("no");
		}
		
		if (f2.isDirectory()) {//判断f2是否为一个目录
			System.out.println("f2 is Directory");
		}
	}
}

    File类的应用 --->使用递归方法输出文件名树

import java.io.File;

/**
 * 使用递归结构编程实现树状展示目录文件结构
 * 
 * @author Administrator
 *
 */
public class FileTree {
	static void printFile(File file, int level) {
		for (int i = 0; i < level; i++) {
			System.out.print("-");
		}
		System.out.println(file.getName());

		if (file.isDirectory()) {
			File[] files = file.listFiles();
			//遍历数组并打印,等价于
			for (int i = 0; i < files.length; i++) {
				File  temp = files[i];
				printFile(temp, level+1);
			}
//			for (File temp : files) {
//				printFile(temp, level + 1);
//			}
			
		}
	}

	public static void main(String[] args) {
		File f = new File("E:/FLUNT WorkSpace/heat");
		printFile(f, 0);
	}
}




猜你喜欢

转载自blog.csdn.net/qq_30007589/article/details/80866596