코드 사본은 다음과 같습니다.
패키지 org.load.u;
import java.io.file;
java.util.linkedhashmap import;
java.util.map import;
// USB 드라이브 감지
공개 수업 checku {
// 스토리지 디스크 상태
개인 정적지도 <문자열, 부울>지도 = 새로운 LinkedHashmap <String, boolean> ();
// 디스크 정의
개인 정적 최종 문자열 [] arr = new String [] { "c", "d", "e", "f", "g", "h", "i", "j"};
public static void main (String [] args) {
init ();
확인하다();
System.out.println ( "U 디스크 감지");
System.out.println (지도);
}
// 각 디스크의 상태를 감지하려면 치명적인 루프
공개 정적 무효 check () {
파일 파일;
을 위한(;;) {
for (string str : arr) {
file = 새 파일 (str + ": //");
// 디스크가 지금 존재하고 전에 존재하지 않는 경우
// USB 드라이브가 막 연결되어 반환되었음을 의미합니다.
if (file.exists () &&! map.get (str)) {
반품;
}
// 상태가 변경 될 때마다 저장된 상태를 업데이트해야합니다.
// 방금 감지 된 상태가 원래 상태와 다르면 상태가 업데이트됩니다.
// 위의 명령문을 아래에 넣어야합니다
if (file.exists ()! = map.get (str)) {
map.put (str, file.exists ());
}
}
노력하다 {
Thread.sleep (5 * 1000);
} catch (InterruptedException e) {
e.printstacktrace ();
}
}
}
// 디스크 상태 초기화, true가 존재하며 그렇지 않으면 false가 있습니다
public static void init () {
파일 파일;
for (string str : arr) {
file = 새 파일 (str + ": //");
map.put (str, file.exists ());
}
}
}