用java搞定时任务,将hashmap里面的值存到文件里面去

简介: 本文介绍了如何使用Java的`Timer`和`TimerTask`类创建一个定时任务,将HashMap中的键值对写入到文本文件中,并提供了完整的示例代码。
   要实现这个功能,你可以使用Java的`Timer`和`TimerTask`类来创建一个定时任务。

   **首先**,你需要创建一个继承自`TimerTask`的类,重写`run`方法,将HashMap中的内容写入文本文件。

   **然后**,使用`Timer`类的`schedule`方法来设置定时任务的执行时间。

第一步,创建继承自TimerTask的类

package org.cyl.database.timer;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.TimerTask;

public class WriteToFileTask extends TimerTask {
    private HashMap<String, String> keyValueMap;
    private String filePath;

    public WriteToFileTask(HashMap<String, String> keyValueMap, String filePath) {
        this.keyValueMap = keyValueMap;
        this.filePath = filePath;
    }

    @Override
    public void run() {
        try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath))) {
            for (Map.Entry<String, String> entry : keyValueMap.entrySet()) {
                writer.write(entry.getKey() + " " + entry.getValue());
                writer.newLine();
            }
        } catch (IOException e) {
            System.err.println("写入文件失败:" + e.getMessage());
        }
    }
}

这个writer.newLine是换行的意思,就是每读取到一对hashmap里面的值时,就换一行。

注意:每次执行这个任务时,都会覆盖原有的文件内容。

第二步,编写测试代码

package org.cyl.database;

import org.cyl.database.timer.WriteToFileTask;

import java.util.HashMap;
import java.util.Timer;

public class Main {
    public static void main(String[] args) {
        HashMap keyValueMap=new HashMap();
        keyValueMap.put("1","2");
        keyValueMap.put("3","4");
        Timer timer=new Timer();
        timer.schedule(new WriteToFileTask(keyValueMap, "./log.txt"), 0, 2 * 1000); // 每隔1分钟执行一次
    }
}

这里我是存放在项目文件目录里面的log.txt文件中,然后是每两秒种写一次。

第三步,看成果。

目录
相关文章
|
10天前
|
Java
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
21 2
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
|
7天前
|
存储 安全 Java
Java HashMap详解
`HashSet` 是 Java 中基于哈希表实现的 `Set` 接口集合,主要用于存储不重复元素,提供快速查找、插入和删除操作。它不允许重复元素,不保证元素顺序,但允许一个 `null` 元素。常用操作包括创建、添加、删除、检查元素及清空集合。由于其哈希表结构,`HashSet` 在插入、删除和查找操作上具有常数时间复杂度 O(1),性能高效。适用于需要快速访问和操作的场景,但需注意其无序性和线程安全问题。
|
1天前
|
Java
利用GraalVM将java文件变成exe可执行文件
这篇文章简明地介绍了如何使用GraalVM将一个简单的Java程序编译成exe可执行文件,首先通过javac命令编译Java文件生成class文件,然后使用native-image命令将class文件转换成独立的exe文件,并展示了如何运行这个exe文件。
6 0
利用GraalVM将java文件变成exe可执行文件
|
2天前
|
存储 前端开发 Java
Java后端如何进行文件上传和下载 —— 本地版(文末配绝对能用的源码,超详细,超好用,一看就懂,博主在线解答) 文件如何预览和下载?(超简单教程)
本文详细介绍了在Java后端进行文件上传和下载的实现方法,包括文件上传保存到本地的完整流程、文件下载的代码实现,以及如何处理文件预览、下载大小限制和运行失败的问题,并提供了完整的代码示例。
38 1
|
12天前
|
Java
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
26 4
|
14天前
|
Java
Java-FileInputStream和FileOutputStream的使用,txt文件及图片文件的拷贝
这篇文章介绍了Java中FileInputStream和FileOutputStream的使用,包括如何读取和写入txt文件以及如何拷贝图片文件。
Java-FileInputStream和FileOutputStream的使用,txt文件及图片文件的拷贝
|
21小时前
|
存储 Java 程序员
【Java】文件IO
【Java】文件IO
8 0
|
1天前
|
Java Maven Spring
用Spring导致的无法运行Java文件的问题的解决方案
本文提供了解决在IntelliJ IDEA社区版中使用Spring Initializr插件创建Spring项目后,Java文件无法运行的问题的方法,主要是通过加载Maven项目来解决。
10 0
|
5月前
|
存储 算法 Java
【深入挖掘Java技术】「源码原理体系」盲点问题解析之HashMap工作原理全揭秘(下)
在阅读了上篇文章《【深入挖掘Java技术】「源码原理体系」盲点问题解析之HashMap工作原理全揭秘(上)》之后,相信您对HashMap的基本原理和基础结构已经有了初步的认识。接下来,我们将进一步深入探索HashMap的源码,揭示其深层次的技术细节。通过这次解析,您将更深入地理解HashMap的工作原理,掌握其核心实现。
55 0
【深入挖掘Java技术】「源码原理体系」盲点问题解析之HashMap工作原理全揭秘(下)
|
5月前
|
存储 安全 Java
HashMap源码全面解析
HashMap源码全面解析