大数据学习--day15(常用类:Date--DateFormat--SimpleDateFormat--File--包装类)
常用类:Date--DateFormat--SimpleDateFormat--File--包装类
这些常用类就不像字符串挖那么深了,只列列用法。
时间处理:
/**
* 时间处理类
* DateFormat 抽象类
* SimpleDateFormat 子类
*
* 父类的格式器不够灵活 尤其是在解析的时候
* 必须满足 yyyy-MM-dd HH:mm:ss 其中 - : 是核心 不能变
* 如果要灵活使用 必须靠子类
*/
public class TestFormatDate {
public static void main(String[] args) throws ParseException {
Date date = new Date();
System.out.println(date); /**
* 解决问题1
*/ // 得到 年月日的格式器 其实就是一个 子类的对象 然后调用 format 方法
String format = DateFormat.getDateInstance().format(date);
System.out.println(format); // 得到 时分秒的格式器 其实就是一个 子类的对象 然后调用 format 方法
format = DateFormat.getTimeInstance().format(date);
System.out.println(format); // 得到 年月日-时分秒的格式器 其实就是一个 子类的对象 然后调用 format 方法
format = DateFormat.getDateTimeInstance().format(date);
System.out.println(format); /**
* 解决问题2 难以计算毫秒 来获得指定时间的 Date 对象
*/
String str = "2000-1-1 12:12:13";
// 获得 年月日的格式器 然后把字符串解析成 Date 对象
Date parse = DateFormat.getDateInstance().parse(str);
Person person = new Person("铁柱",parse);
System.out.println(person); // 获得年月日 时分秒 的格式器 然后把字符串解析成 Date 对象
parse = DateFormat.getDateTimeInstance().parse(str);
person = new Person("铁柱",parse);
System.out.println(person); str = "12:13:14"; // 如果获得的是 时分秒格式器 那么字符串不能出现年月日
parse = DateFormat.getTimeInstance().parse(str);
person = new Person("铁柱",parse);
System.out.println(person); }
}
文件类:用法看API,放两个学习例子,模拟dir操作,递归删除文件夹(循环加栈删除)
模拟dir操作
/**
* 模拟 dos命令 dir命令
* 时间
* 目录 | 字节数
* 文件名字
* 文件计数 统计字节
* 目录计数 可用字节
*/
public static void DIR(File file){
if( !file.isDirectory() ){
System.out.println("不是目录");
return ;
} // 来到这里肯定是 目录 // 时间处理
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm");
Date date = null; // 文件目录 字节 计数
int fileSize = 0;
int dirSize = 0;
int lengthCount = 0 ; // 获得所有子文件对应的 file 对象
File[] files = file.listFiles();
// 遍历获得每一个
for (File f : files) { long time = f.lastModified();
date = new Date(time);
System.out.printf("%-21s",sdf.format(date)); String name = "";
if( f.isDirectory() ){
name = "<DIR>";
dirSize++;
}
System.out.printf("%-10s",name); String length = "";
if(f.isFile()){
length += f.length();
fileSize++;
lengthCount += f.length();
}
System.out.printf("%-10s",length); System.out.println(f.getName());
} System.out.println("\t\t\t"+fileSize+"个文件 共 "+lengthCount+" 字节");
System.out.println("\t\t\t"+dirSize+"个目录 "+file.getUsableSpace());
}
递归删除文件夹
/**
* 递归删除文件夹
* 该方法可以删除任意的 file 对象代表的文件
*/
public void delete(File file){
// 先判断是不是目录 如果是就删除其所有的子文件
// 所有的子文件删除完毕之后 再删自己
if( file.isDirectory()){
File[] files = file.listFiles();
for (File f : files) {
delete(f);
}
}
file.delete();// 删自己
}
非递归删除文件夹(文件模拟一个队列,文件夹模拟一个栈)
package sy180928; import java.io.File;
import java.util.ArrayList; /**
* @author suyuan
*非递归删除文件夹
*/
public class FileDelStack
{ public static void main(String[] args)
{
File file=new File("E:\\sy\\test");
delete(file);
System.out.println("删除成功"); } public static void delete(File file)
{
ArrayList<File> filelist=new ArrayList();
ArrayList<File> dirList=new ArrayList();
if(file.isFile())
{
file.delete();
}
filelist.add(file);//是文件夹就压栈
while(filelist.size()>0)
{
File f=filelist.remove(0);//出队列
File[] listFiles = f.listFiles();
for (File file2 : listFiles)
{
if(file2.isFile())
{
file2.delete();
}
else
{
filelist.add(file2);//是文件夹就压栈
dirList.add(file2);
}
}
}
//只剩空文件夹了
System.out.println(dirList);
System.out.println(dirList.size());
for (int i=dirList.size()-1;i>=0;i--)
{
System.out.println(dirList.get(i)+" "+i);
dirList.get(i).delete();
}
System.out.println(dirList+"ddd");
file.delete();
} }
包装类是为了好放入集合,重点掌握拆箱,装箱。
大数据学习--day15(常用类:Date--DateFormat--SimpleDateFormat--File--包装类)的更多相关文章
- 大数据学习——linux常用命令(三)
		三 文件操作 1创建文件 touch somefile.txt 创建一个空文件somefile.txt > 重定向操作符 echo "woshiwoa"> some.t ... 
- 大数据学习——linux常用命令(四)
		四 查到命令 1 查找可执行的命令所在的路径 which ls 查ls命令所在的路径 2 查找可执行的命令和帮助的位置 whereiis ls 3 从某个文件夹开始查找文件 find / -name ... 
- 大数据学习——linux常用命令(一)
		一.基本日常操作命令 1 查看当前所在工作目录的全路径 pwd 2 查看当前系统的时间 date 设置时间,date -s"2018-11-12" 修改时间后,需要写入硬件bios ... 
- 大数据学习——linux常用命令(五)
		1 挂载外部存储设备 可以挂载光盘.硬盘.磁带.光盘镜像文件等 1/ 挂载光驱 mkdir /mnt/cdrom 创建一个目录,用来挂载 mount -t iso9660 -o ro / ... 
- 大数据学习——linux常用命令(二)四
		系统管理操作 1 挂载外部存储设备 可以挂载光盘.硬盘.磁带.光盘镜像文件等 1/ 挂载光驱 mkdir /mnt/cdrom 创建一个目录,用来挂载 mount -t iso9660 ... 
- 大数据学习——linux常用命令(二)
		二.目录操作 1 查看目录信息 ls / 查看根目录下的文件信息 ls . 或者 ls ./查看当前目录下的文件信息 ls ../查看根目录下 ls /home/hadoop ls -l . 查看当前 ... 
- 大数据学习之BigData常用算法和数据结构
		大数据学习之BigData常用算法和数据结构 1.Bloom Filter 由一个很长的二进制向量和一系列hash函数组成 优点:可以减少IO操作,省空间 缺点:不支持删除,有 ... 
- 大数据学习day31------spark11-------1. Redis的安装和启动,2 redis客户端 3.Redis的数据类型  4. kafka(安装和常用命令)5.kafka  java客户端
		1. Redis Redis是目前一个非常优秀的key-value存储系统(内存的NoSQL数据库).和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list ... 
- 大数据学习系列之四 ----- Hadoop+Hive环境搭建图文详解(单机)
		引言 在大数据学习系列之一 ----- Hadoop环境搭建(单机) 成功的搭建了Hadoop的环境,在大数据学习系列之二 ----- HBase环境搭建(单机)成功搭建了HBase的环境以及相关使用 ... 
随机推荐
- javascript requestAnimationFrame vs. setTimeout
			在做javascript动画时,我们常常使用的方法就是通过setTimeout调用告诉浏览器每隔20ms执行一段js代码来对dom对象执行操作,这个貌似没有什么问题,但是当深入理解计算机的fps以及浏 ... 
- Effective C++(1-2) 编译器替换预处理器
			1 C++最主要的四部分: C Object-Oriented C++: 面向对象 Template C++:泛型编程 STL C++高效编程守则视状况而变化,取决于你使用C++的哪一部分. 2 尽量 ... 
- Office Online Server 2016 部署和配置
			Office Online Server 2016 部署和配置https://wenku.baidu.com/view/65faf8de846a561252d380eb6294dd88d1d23d45 ... 
- 随手练——LintCode 433 - 小岛数量
			LintCode 433: https://www.lintcode.com/problem/number-of-islands/description LintCode 434: https://w ... 
- 新闻cms管理系统(一) ---- thinkphp框架准备
			1.thinkphp介绍 一个快速.简单的基于MVC和面向对象的轻量级PHP开发框架 MVC:M数据层. V视图层 . C控制层 优点: (1)入手非常快 (2)thinkpjp提供核心内库.文件.函 ... 
- PAT——1072. 开学寄语(20)
			下图是上海某校的新学期开学寄语:天将降大任于斯人也,必先删其微博,卸其QQ,封其电脑,夺其手机,收其ipad,断其wifi,使其百无聊赖,然后,净面.理发.整衣,然后思过.读书.锻炼.明智.开悟.精进 ... 
- PAT——1044. 火星数字
			火星人是以13进制计数的: 地球人的0被火星人称为tret. 地球人数字1到12的火星文分别为:jan, feb, mar, apr, may, jun, jly, aug, sep, oct, no ... 
- 【问题解决】增加https后 phpcms 分页错误
			https://m.cnbuses.com/m.cnbuses.com/index.php?page=2查看分页方法 function pages()中有个pageurl 查看该方法,发现有类似htt ... 
- EF Core中外键关系的DeleteBehavior介绍(转自MSDN)
			Delete behaviors Delete behaviors are defined in the DeleteBehavior enumerator type and can be passe ... 
- 一点一点看JDK源码(〇)
			一点一点看JDK源码(〇) liuyuhang原创,未经允许进制转载 写在前面: 几乎所有的大神都会强调看源码,也强调源码的重要性: 但是如何看源码,源码看什么?看了什么用?看了怎么用? 困扰很多人, ... 
