You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.1 KiB
40 lines
1.1 KiB
package command;
|
|
|
|
import model.Article;
|
|
import controller.CrawlerController;
|
|
import util.FileUtil;
|
|
import java.util.List;
|
|
|
|
public class SaveCommand implements Command {
|
|
private CrawlerController controller;
|
|
|
|
public SaveCommand(CrawlerController controller) {
|
|
this.controller = controller;
|
|
}
|
|
|
|
@Override
|
|
public void execute() {
|
|
try {
|
|
List<Article> articles = controller.getArticles();
|
|
if (articles.isEmpty()) {
|
|
controller.getView().showMessage("没有数据可保存");
|
|
return;
|
|
}
|
|
|
|
for (Article article : articles) {
|
|
FileUtil.saveArticle(article);
|
|
}
|
|
|
|
FileUtil.saveArticles(articles, "summary.txt");
|
|
|
|
controller.getView().showMessage("已保存 " + articles.size() + " 条数据到 data/ 目录");
|
|
} catch (Exception e) {
|
|
controller.getView().showError("保存失败: " + e.getMessage());
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public String getDescription() {
|
|
return "保存数据到文件";
|
|
}
|
|
}
|
|
|