当U盘被拔出时,及时关闭线程并保存数据,举个java代码例子
时间: 2023-05-16 12:06:52 浏览: 90
当U盘被拔出时,及时关闭线程并保存数据的Java代码示例:
```java
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class USBThread implements Runnable {
private boolean running;
private File file;
private FileWriter writer;
public USBThread(File file) {
this.file = file;
try {
writer = new FileWriter(file);
} catch (IOException e) {
e.printStackTrace();
}
running = true;
}
@Override
public void run() {
while (running) {
try {
Thread.sleep(1000);
writer.write("Data to be saved\n");
} catch (InterruptedException | IOException e) {
e.printStackTrace();
}
}
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public void stop() {
running = false;
}
public static void main(String[] args) {
File file = new File("data.txt");
USBThread thread = new USBThread(file);
Thread t = new Thread(thread);
t.start();
// When USB is unplugged, stop the thread and close the file
// 当U盘被拔出时,停止线程并关闭文件
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
thread.stop();
try {
thread.writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}));
}
}
```