⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reminderservice.java

📁 java对文件进行操作的例子
💻 JAVA
字号:
/** 
 * 读入一个有关时间安排的文本文件;睡眠直至预定时间,然后发出嘟嘟声
 */
import java.io.*;
import java.text.*;
import java.util.*;
import javax.swing.*;
//定义RemiderService类
public class ReminderService  {
    class Item  {
       Date due;//定义一个日期型变量
       String message;//定义一个字符串,用来存放显示信息
       Item(Date d, String m) {
           due = d;
           message = m;
       }
   }
ArrayList l = new ArrayList();//数组列表
//main()方法
public static void main(String argv[ ]) throws IOException {
     ReminderService rs = new ReminderService();//实例化RemiderService类
     rs.load();//调用load()方法
     rs.run();//调用run()方法
}
//定义load()方法,用来读取信息
protected void load() throws IOException {
    //使用缓冲区读取文件
    BufferedReader is = new BufferedReader(
         new FileReader("ReminderService.txt"));
    //格式化日期时间格式
    SimpleDateFormat formatter = 
         new SimpleDateFormat ("yyyy MM dd hh mm" );
    String aLine;
    while ((aLine = is.readLine())  != null) {//判断是否可写
          ParsePosition pp = new ParsePosition(0);
          Date date = formatter.parse(aLine,pp);
          if (date == null) {//如果日期格式不正确
             message("Invalid date in " + aLine);
             continue;
          }
          String mesg = aLine.substring(pp.getIndex());
l.add(new Item(date, mesg));
          }
}
//定义run()方法,根据不同情况,进行相应的操作并且显示不同的信息。
public void run()  {
   System.out.println("ReminderService: Starting at "+ new Date());
   while (!l.isEmpty())  {
      Date d = new Date();
      Item i = (Item) l.get(0);
      long interval = i.due.getTime() - d.getTime();
      if (interval>0) {//判断所设定的时间是否过期
         System.out.println("Sleeping until" + i.due);
         try {
            Thread.sleep(interval);
         } catch (InterruptedException e) {
            System.exit(1);//抛出异常
         }
         //调用message()方法,显示信息
         message(i.due + ":" + i.message);
       } else//如果设定的时间过期,则显示另一个信息
         message("MISSED" + i.message + "at" + i.due);
       l.remove(0);
     }
     System.exit(0);
  }
  //定义message()方法,用来显示信息
  void message(String message)  {
     System.out.println("007" + message);
     JOptionPane.showMessageDialog(null,
          message,
          "Timer Alert",    // 标题栏
          JOptionPane.INFORMATION_MESSAGE); // 图标
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -