`
sunwch
  • 浏览: 169981 次
  • 性别: Icon_minigender_1
  • 来自: free-town
社区版块
存档分类
最新评论

java实现每一个小时创建一个文件夹

阅读更多
    在开发的过程中如果一个项目的访问量很大的时候我们可能需要对项目的日志做一个分析,从而会产生一个需求那就可能是需要把日志按小时来分类存储(也就是日志每一个小时产生一个文件夹并每一小时产生一个文件这样的话有利于日后的日志分析工作),但是这样的实现并不困难方法很多,可是直接使用java.util.TimeTask来实现,只要设置period的时间段为自己想设置的时间段就可以,但同时也可以直接用quartz定时程序来实现。我这边只是写了一个测试程序来实现该功能,使用的Thread来实现.(以下代码仅供参考)
public class Test implements Runnable {

   private static String parentDirectory = "E:\\web";   // 根目录
   private static long et;                              // 时间间隔时间
   private static String filePath;			// 文件路径
   private static int count = 0;			// 记数器

public static void main(String[] args){
        new Thread(new Test()).start();
 }

     private static void init(){
		// init directory and fileName
		parentDirectory = "E:\\web";
		filePath = null;
		
		Calendar cInstance = new GregorianCalendar();
                // 时间间隔在此设置,我设置为每一分钟创建一个文件夹
		cInstance.add(Calendar.MINUTE, (+1)); 
		et = cInstance.getTimeInMillis() >>> 10;
		++ count;
		createDirectory(String.valueOf(count));
		createNewFile(String.valueOf(count));
	}

     public void run(){
		for(;;){
			if(count == 0)
				init();
			
			// write to disk
			fileWriteToDisk();
			
			// if start > end ,init time
			if(timeInseconds() > et){
				init();
			}
		}
	}

      private static void createDirectory(String dirName){
		parentDirectory = parentDirectory + File.separator + dirName;
		System.out.println("directory----->" + parentDirectory);
		File directory = new File(parentDirectory);
		if(!directory.exists())
			directory.mkdirs();
	}
     

     private static long timeInseconds(){
		return System.currentTimeMillis() >>> 10;
	}
	
	private static void createNewFile(String fileName){
		filePath = parentDirectory + File.separator + fileName + ".properties";
		System.out.println("newFileName----------->" + filePath);
		File file = new File(filePath);
		if(!file.exists()){
			try{
				file.createNewFile();
			}catch(IOException ex){
				;
			}
		}
	}
	
	private static void fileWriteToDisk(){
		File path = new File(filePath);
		if(path.exists()){
			try{
				BufferedWriter bout = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(path,true)));
				bout.write(String.valueOf(count));
				bout.newLine();
				bout.flush();
			}catch(FileNotFoundException fn){
				System.out.println("fileNotFound-->" + fn.getMessage());
			}catch(IOException ex){
				;
			}
		}
	}
}
分享到:
评论

相关推荐

    Java拷贝文件夹和删除文件夹代码实例

    在上面的代码中,我们首先判断目标文件是否是一个文件夹,如果是文件夹,我们则创建一个新的文件夹,然后递归地拷贝文件夹中的所有文件和子文件夹。 二、删除整个文件夹 删除整个文件夹需要使用File类的delete方法...

    java写的ftp下载上传定时监控

    要下载或上传文件,你需要创建一个FTPClient实例,然后连接到FTP服务器。例如: ```java FTPClient ftpClient = new FTPClient(); ftpClient.connect("ftp.example.com"); ftpClient.login("username", "password")...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    对Java语言的每个语法都提供了一个或多个例程讲解 大量使用流程图表示程序的执行过程,使用结构图表示程序的内部状态 每章最后都给出了典型的练习题,让读者及时练习,巩固提高,并提供了参考答案 目录 第1篇 ...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    对Java语言的每个语法都提供了一个或多个例程讲解 大量使用流程图表示程序的执行过程,使用结构图表示程序的内部状态 每章最后都给出了典型的练习题,让读者及时练习,巩固提高,并提供了参考答案 目录 第1篇 ...

    JAVA项目开发全程实录(含电子书和所有源代码)

    《Java项目开发全程实录》这一本书从开发背景、需求分析、系统功能分析、数据库分析、数据库建模、网站开发和网站发布或者程序打包与运行,每一过程都进行了详细的介绍。 目 录 第1章 进销存管理系统(Swing+SQL ...

    利用Google日历向手机发送短信 Java

    4. **发送短信**:虽然Google日历本身并不直接支持向手机发送短信,但可以通过创建一个事件并在事件触发时发送电子邮件,然后将邮件设置为自动转发到短信服务提供商的邮箱,从而间接实现短信发送。一些运营商支持将...

    新建文件夹_电子钟_

    "新建文件夹_电子钟_"这个标题暗示我们可能在讨论一个关于创建或定制的电子钟程序,它能够帮助用户获取当前时间并设置自定义闹钟。下面将详细探讨电子钟背后的技术原理、实现方法以及可能的功能特性。 首先,电子钟...

    Java日历程序.zip

    在"lunar-java-master"这个子文件夹中,很可能是包含了一个关于农历(阴历)的日历程序。在Java中实现农历功能,通常需要额外的库或算法,因为Java标准库并未直接支持农历。开发者可能使用了第三方库如`chinese-...

    RMI远程时钟调用 java程序

    4. **时间间隔设置**:描述中提到用户可以自定义时间间隔,这可能意味着程序包含一个配置或设置界面,用户可以输入或选择更新时间的间隔,如每秒、每分钟或每小时。 5. **交互界面**:程序提供了两种界面,可能指的...

    Java项目:在线嘿嘿网盘系统设计和实现(java+Springboot+ssm+mysql+maven)

    文件夹的管理,创建、删除、重命名。 文件的分享,支持通过链博口二维码的分享方式等等。 二、项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持) 项目...

    NIT-Pro初级软件工程师(Java)案例题

    - 提交时需将所有文件统一放入一个文件夹,文件夹命名格式为“考生的准考证号+任务一”。 #### 二、任务概述与需求 **任务概述**: - 作为博客网(bokee.com)的开发人员,参与博客动力(blogdriver.com)子品牌的...

    Java项目:在线网盘系统(java+JSP+Springboot+maven+mysql+ThymeLeaf+FTP)

    文件夹的管理,创建、删除、重命名。 文件的分享,支持通过链接和二维码的分享方式等等,以及管理员对用户的管理等等。 二、项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,...

    Java Notes from my teacher abroad

    3. **资源占用**:Java应用程序通常会消耗更多的内存资源,这对于资源受限的环境来说是一个挑战。 4. **启动时间**:Java应用程序的启动时间较长,对于那些对启动速度有严格要求的应用场景可能不是最佳选择。 5. **...

    NIT-Pro初级软件工程师(Java)案例题_sample

    1. **任务分配:** 本案例考试包含两个任务,每位考生仅需完成其中一个任务。 2. **参考材料:** 提供的系统界面示例图仅供参考,考生应依据实际需求进行设计。 3. **考试时间管理:** 考生应注意合理安排时间,并...

    自动变换墙纸

    系统需要设置一个定时器或者计划任务,比如每隔一段时间(如每小时、每天)自动更换墙纸。这通常可以通过操作系统级别的定时服务来实现,例如Windows的任务计划程序或Linux的cron作业。在编程语言层面,可以使用像是...

    springboot整合阿里云oss进行文件上传

    然后,创建一个Bucket,Bucket是OSS中的基本存储单元,你可以将其理解为一个云上的文件夹。 **2. 获取Access Key** 在阿里云控制台上,你需要获取Access Key ID和Access Key Secret,这是用于身份验证的密钥对,...

    简单的时钟程序/时钟程序

    在编程领域,创建一个简单的时钟程序是一项基础但实用的任务,它可以用来展示基本的时间信息,如小时、分钟和秒,并且通常会包含一些附加功能,比如秒表计时。在这个"简单的时钟程序"中,我们可以推测它具备显示当前...

    安卓天气日历时间选择倒计时相关-datetimepicker实现挺不错的时间选择器分为日期选择器和时钟选择器。.zip

    总的来说,这个 zip 文件为安卓开发者提供了一个实现良好且可定制的时间选择器组件,可以帮助他们快速构建包含日期选择和时间选择功能的应用。通过学习和使用 datetimepicker,开发者不仅可以提升应用的用户体验,也...

Global site tag (gtag.js) - Google Analytics