java定时读取文件
在项目中经常会用到定时器,在笔试或者面试中也会经常问到定时器和IO流。
- public class TimerDemo {
- public static void main(String[] args) throws Exception {
- Calendar date = Calendar.getInstance();
- //设置固定开始时间为 00:00:00
- date.set(date.get(Calendar.YEAR), date.get(Calendar.MONTH), date.get(Calendar.DATE), 0, 0, 0);
- long daymin = 5000;//5秒
- long daySpan = 24 * 60 * 60 * 1000;//一天的秒数,使用这个秒数就能在某天的固定时刻触发定时器
- //得到定时器实例
- Timer time = new Timer();
- time.schedule(new TimerTask() {
- public void run() {
- //run中填写定时器主要执行的代码块
- //打印当前时间
- SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
- String date1 = df.format(new Date());// new Date()为获取当前系统时间,也可使用当前时间戳
- System.err.println(date1);
- System.out.println("定时器执行..");
- //1,字符流读取文件
- try {
- FileReader fr = new FileReader("E:\\demo.txt");
- BufferedReader br = new BufferedReader(fr);
- StringBuilder strb = new StringBuilder();
- while (true) {
- String line = null;
- try {
- line = br.readLine();
- } catch (IOException e) {
- e.printStackTrace();
- }
- if (line == null) {
- break;
- }
- strb.append(line);
- String result = strb.toString();
- System.err.println(result);
- }
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- }
- //2,字节流读取文件
- FileInputStream fis = null;
- try {
- fis = new FileInputStream("E:\\demo1.txt");
- } catch (FileNotFoundException e1) {
- e1.printStackTrace();
- }
- byte[] b = new byte[1024];
- int len = 0;
- try {
- while((len=fis.read(b))!=-1){
- System.out.println(new String(b, 0, len));
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }, date.getTime(), daymin); //date.getTime()为上面赋值的00:00:00,daymin是执行间隔
- };
- }
这里主要的代码块为:
Timer time = new Timer();
time.schedule(new TimerTask() {
public void run() {
//run中填写定时器主要执行的代码块
}, date.getTime(), daymin); //date.getTime(),为开始时间,这里获取的是上面赋值的时间;daymin为时间间隔
};
run方法中写入自己的代码,我这里主要是用两种方法实现对文件的读取。
控制台打印如上,可以看到每5秒执行一次。
java定时读取文件的更多相关文章
- Java中读取文件
Java中读取文件,去除一些分隔符,保存在多维数组里面 public void readFile(String filePath) { File file=new File(filePath); Ar ...
- JAVA本地读取文件,解决中文乱码问题
JAVA本地读取文件出现中文乱码,查阅一个大神的博客做一下记录 import java.io.BufferedInputStream;import java.io.BufferedReader;imp ...
- Java代码读取文件
用Java代码读取文件时,保持文件本来的格式(主要是保持换行),这点有时候比较重要.用代码实现也相当简单. private static void readFile() { StringBuilder ...
- Java实现读取文件
目录 Java实现读取文件 1.按字节读取文件内容 使用场景 2.按字符读取文件内容 使用场景 3.按行读取文件内容 使用场景 4.随机读取文件内容 使用场景 Java实现读取文件 1.按字节读取文件 ...
- Java 实例 - 读取文件内容
原文作者:菜鸟教程 原文链接:Java 实例 - 读取文件内容(建议前往原文以获得最佳体验) 按行读取文本文件 import java.io.*; public class Main { public ...
- Java方法读取文件内容
一.针对文件内容的读取,在平时的工作中想必是避免不了的操作,现在我将自己如何用java方法读取文件中内容总结如下:废话不多说,直接上代码: 1 public static void main(Stri ...
- Java将文件中的内容转换为sql语句(和并发定时读取文件)
数据文件内容data.txt {USER_TYPE=1,CREATE_USER=ZHANG,UPDATE_USER=li,OPER_NUM=D001,SRC=2,UPDATE_TIME=2018-11 ...
- java实现读取文件内容(不同类型)
在一些项目中大量的数据经常需要从文件中读取,例如xml文件,txt文件,csv文件 1.读取本地的xml文件,需要注意对应的路径 //读取xml文件,xmlFile为读取文件的路径 DocumentB ...
- java中读取文件以及向文件中追加数据的总结
package gys; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; imp ...
随机推荐
- Vue 变化检测问题
受现代Javascript的限制,Vue不能检测到对象属性的添加和删除,因为Vue在初始化时将属性转为getter/setter,所以属性必须在data对象上才能让Vue转换它,Vue不允许在已经创建 ...
- B - Sea and Islands
Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Description A map ...
- ASP.NET Core MVC 2.x 全面教程_汇总贴
Reshaper快捷键盘 快速生成属性:prop Ctrl+. ASP.NET Core MVC 2.x 全面教程:https://www.bilibili.com/video/av38392956 ...
- python3 封装之property 多态 绑定方法classmethod 与 非绑定方法 staticmethod
property 特性 什么是特性property property 是一种特殊的属性,访问它时会执行一段功能(函数),然后返回值 例如 BMI指数(bmi是计算而来的,但很明显它听起来像是一个属性而 ...
- 将字符串中的字符按Z字形排列,按行输出
示例1: Input: s = "PAYPALISHIRING", numRows = 3 Output: "PAHNAPLSIIGYIR" 示例2: Pyth ...
- 535. Encode and Decode TinyURL(rand and srand)
Note: This is a companion problem to the System Design problem: Design TinyURL. TinyURL is a URL sho ...
- 如何有效提升Unity Gear VR游戏性能
http://www.vr186.com/vr_news/vr_technical_area/1093.html 好的,所以你决定用 Unity 来做一个 VR 游戏,并选定了三星 Gear vr 为 ...
- Unity3D研究院之IOS Android支持中文与本地文件的读取写
前几天有个朋友问我为什么在IOS平台中可以正常的读写文件可是在Android平台中就无法正常的读写.当时因为在上班所以我没时间来帮他解决,晚上回家后我就拿起安卓手机真机调试很快就定位问题所在,原 ...
- [Xcode 实际操作]八、网络与多线程-(5)使用UIApplication对象发送邮件
目录:[Swift]Xcode实际操作 本文将演示如何使用应用程序单例对象,发送邮件的功能. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] 注:需要使用真机进行测 ...
- [Xcode 实际操作]九、实用进阶-(20)创建位移关键帧动画:通过添加运动关键点制作位移动画
目录:[Swift]Xcode实际操作 本文将演示如何通过添加运动关键点的方式,来制作位移动画 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIK ...