大数据学习--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的环境以及相关使用 ...
随机推荐
- Java软件编码规范要求
1.一个类对应一个文件,文件名与类名保持一致 虽然一个“.java”源文件可以有多个类(不是内部类),但是不提倡那么写.
- Python学习---django模板继承180123
django模板继承 --20180123 a.include 模板标签 b.extend(继承)模板标签 ------include 模板标签 该标签允许在(模板中)包含其它的模板的内容. 标签的 ...
- [EffectiveC++]item22:Declare data members private
将成员变量隐藏在函数接口的背后,可以为“所有可能的实现”提供弹性, 假设我们有一个public成员变量,而我们最终取消了它,多少代码可能会被破坏呢?那是一个不可知的大量. protected成员变量就 ...
- 高可用web框架
nginx nginx简介 Nginx是一个自由.开源.高性能及轻量级的HTTP服务器及反转代理服务器.Nginx以其高性能.稳定.功能丰富.配置简单及占用系统资源少而著称. Nginx 超越 Apa ...
- 定义路由的state参数
使用$stateProvider.state('stateName', {url: '', params: {}, views: {},...})创建路由,其中部分参数解析: params: 是一个包 ...
- JavaScript的DOM_StyleSheet操作内联或链接样式表
使用 style 属性,仅仅只能获取和设置行内的样式,如果是通过内联<style>或链接<link>提供的样式规则就无可奈何了,使用 getComputedStyle 和cur ...
- 指令集 与 cpu
http://cache.baiducontent.com/c?m=9d78d513d9d437ab4f9d9e697c15c0116e4381132ba7a1020ca08448e2732d4050 ...
- PAT——1032. 挖掘机技术哪家强
为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛.现请你根据比赛结果统计出技术最强的那个学校. 输入格式: 输入在第1行给出不超过105的正整数N,即参赛人数.随后N行,每行给出一位 ...
- JNI由浅入深_7_c调用Java方法一
1.在Java中声明方法 <span style="font-size:14px;">/** * javah -encoding utf-8 -jni com.exam ...
- 【题解】洛谷P1273 有线电视网(树上分组背包)
次元传送门:洛谷P1273 思路 一开始想的是普通树形DP 但是好像实现不大好 观摩了一下题解 是树上分组背包 设f[i][j]为以i为根的子树中取j个客户得到的总价值 我们可以以i为根有j组 在每一 ...