java实现监听u盘示例分享

时间:2023-10-20 02:14:05 


package org.load.u;

import java.io.File;
import java.util.LinkedHashMap;
import java.util.Map;

// U盘检测
public class CheckU {
 // 存放磁盘状态
 private static Map<String, Boolean> map = new LinkedHashMap<String, Boolean>();
 // 定义磁盘
 private static final String[] arr = new String[] {"C", "D", "E", "F", "G", "H", "I", "J"};

 public static void main(String[] args){
  init();
  check();

  System.out.println("检测到U盘");
  System.out.println(map);
 }

 // 死循环检测每个磁盘状态
 public static void check() {
  File file ;
  for(;;) {
   for(String str : arr) {
    file = new File(str + ":\\");

    // 如果磁盘现在存在,并且以前不存在
    // 则表示刚插上U盘,返回
    if(file.exists() && !map.get(str)) {
     return;
    }

    // 需要每次状态改变时,更新保存的状态
    // 如果刚检测的状态和原来的状态不一样,则重新更新状态
    // 必须放上面的if语句下面
    if(file.exists() != map.get(str)) {
     map.put(str, file.exists());
    }
   }

   try {
    Thread.sleep(5 * 1000);
   } catch (InterruptedException e) {
    e.printStackTrace();
   }
  }
 }

 // 初始化磁盘状态,存在true, 否则false
 public static void init() {
  File file ;
  for(String str : arr) {
   file = new File(str + ":\\");
   map.put(str, file.exists());
  }
 }
}

标签:java,u盘
0
投稿

猜你喜欢

  • C#串口编程System.IO.Ports.SerialPort类

    2023-06-07 17:48:28
  • C#通过流写入一行数据到文件的方法

    2023-08-22 13:04:08
  • 详解WPF中用户控件和自定义控件的使用

    2023-07-25 12:20:26
  • SpringBoot之通过BeanPostProcessor动态注入ID生成器案例详解

    2023-11-24 22:17:26
  • 解决RedisTemplate存储至缓存数据出现乱码的情况

    2023-04-20 15:30:58
  • Eclipse运行android项目报错Unable to build: the file dx.jar was not loaded from the SDK folder的解决办法

    2023-06-14 15:28:30
  • 深入剖析java中的集合框架

    2022-04-27 18:48:16
  • Android最简单的限制输入方法(只包含数字、字母和符号)

    2022-01-22 00:15:45
  • Java实现替换PDF中的字体功能

    2023-10-04 13:24:17
  • Java里的static import使用小结

    2023-08-18 18:36:36
  • Android实现点击AlertDialog上按钮时不关闭对话框的方法

    2022-07-28 07:39:51
  • TCP/IP协议中三次握手四次挥手的原理及流程分析

    2022-02-04 18:27:03
  • 封装的android监听手指左右滑动屏幕的事件类分享

    2021-10-21 07:10:08
  • Java中BufferedReader和BufferedWriter使用方式

    2022-01-06 15:06:05
  • Android实现简单的自定义ViewGroup流式布局

    2022-03-16 10:21:23
  • Android实现签名涂鸦手写板

    2022-07-27 04:10:14
  • Java经典面试题最全汇总208道(六)

    2023-11-23 17:52:45
  • Spring Boot Admin实践详解

    2023-08-25 06:57:53
  • Java父线程(或是主线程)等待所有子线程退出的实例

    2022-10-23 16:25:50
  • Java实现的两个线程同时运行案例

    2023-05-14 09:10:40
  • asp之家 软件编程 m.aspxhome.com