package com.example.datacollect.command; import com.example.datacollect.repository.ArticleRepository; import com.example.datacollect.persist.JsonExporter; import com.example.datacollect.view.ConsoleView; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; public class ExportCommand implements Command { private static final Logger logger = LoggerFactory.getLogger(ExportCommand.class); private final ConsoleView view; private final JsonExporter jsonExporter; public ExportCommand(ConsoleView view) { this.view = view; this.jsonExporter = new JsonExporter(); } @Override public String getName() { return "export"; } @Override public void execute(String[] args, ArticleRepository repository) { // 参数校验:export if (args.length < 2) { String errorMsg = "用法: export <文件路径> (示例: export articles.json)"; logger.error(errorMsg); view.printError(errorMsg); return; } String filePath = args[1]; try { jsonExporter.export(repository, filePath); view.printSuccess("✅ 成功导出文章到: " + filePath); } catch (IOException e) { view.printError("❌ 导出失败: " + e.getMessage()); } } }