大数据学习--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的环境以及相关使用 ...
随机推荐
- SpringMVC笔记——SSM框架搭建简单实例
落叶枫桥 博客园 首页 新随笔 联系 订阅 管理 SpringMVC笔记——SSM框架搭建简单实例 简介 Spring+SpringMVC+MyBatis框架(SSM)是比较热门的中小型企业级项目开发 ...
- [翻译] FSLineChart
FSLineChart A line chart library for iOS. 一个iOS的线状图控件. Installing FSLineChart - 安装 Add the contents ...
- In-app Billing 概述
这个文档讲解了In-app Billing的基础构成和功能,为了能够把In-app Billing功能添加到你的程序中,你需要很好的理解这些内容. 注意: 保证你的应用遵从发布地国家的相关法律. 举例 ...
- 淘宝NPM镜像源
npm install -g cnpm --registry=https://registry.npm.taobao.org
- 第九次,mp3
- Economy a Two-Edged Sword for Democrats
2017-05-03 12:05:07 https://www.usnews.com/news/blogs/ken-walshs-washington/2014/10/03/economy-a-two ...
- 关于 MapReduce
继续摘抄<Hadoop 权威指南>第二章,跳过不少于我复杂的东西,但依然是捉急的效率,开始觉得看不完另外一本全英文的书,大概每天要看5页吧... 以上. MapReduce 是一种可用于数 ...
- error MSB8031: Building an MFC project for a non-Unicode character set is deprecated. You must change the project property to Unicode or download an additional library. See http://go.microsoft.co
Win10,也重新装了免费版的Visual Studio 2013 y,写MFC程序时候发现这样的提示: error MSB8031: Building an MFC project for a no ...
- vue项目搭建笔记
安装nodejs后, 首先安装淘宝镜像:npm install -g cnpm --registry=https://registry.npm.taobao.org 淘宝镜像安装成功后,安装vue脚手 ...
- 带参sql$和#的区别(注解)
主要区别就是#带双引号,$不带 例如:#{id}代表'id',${id}代表id 下面是Mybatis @Select注解方式的sql @Select("select id,name fro ...