我有一个预定义的电话号码列表要在我的应用程序中阻止,该列表是根据PhoneListFilter构造函数中的文件输入创建的。
我需要能够在不重新启动应用程序的情况下添加和删除此列表中的项目。我正在考虑实现FileWatcher,它可以启动一个线程并每5分钟左右检查一次文件是否有任何更改并更新列表。这是一种好方法还是我应该采取不同的方式?
PhoneListFilter.java
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class PhoneListFilter {
private List<String> phoneList;
public PhoneListFilter() {
phoneList = new ArrayList<>();
try {
Scanner s = new Scanner(new File("PhonesToBlockList"));
while (s.hasNext()) {
phoneList.add(s.next());
}
s.close();
} catch (FileNotFoundException ex) {
ex.printStackTrace();
}
}
public boolean shouldBlock(PhoneRequest phoneRequest) {
if (phoneList.contains(phoneRequest.getPhoneNumber())) {
return true;
}
return false;
}
}