1 changed files with 0 additions and 52 deletions
@ -1,52 +0,0 @@ |
|||||
package com.example.moviecli.command; |
|
||||
|
|
||||
import com.example.moviecli.model.Movie; |
|
||||
import com.example.moviecli.repository.MovieRepository; |
|
||||
import com.example.moviecli.view.ConsoleView; |
|
||||
import com.example.moviecli.exception.SaveFailedException; |
|
||||
import com.opencsv.CSVWriter; |
|
||||
import java.io.FileWriter; |
|
||||
import java.util.List; |
|
||||
|
|
||||
public class ExportCommand implements Command { |
|
||||
private final ConsoleView view; |
|
||||
|
|
||||
public ExportCommand(ConsoleView view) { |
|
||||
this.view = view; |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
public String getName() { |
|
||||
return "export"; |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
public void execute(String[] args, MovieRepository repository) { |
|
||||
List<Movie> movies = repository.getAll(); |
|
||||
if (movies.isEmpty()) { |
|
||||
view.printError("没有数据可导出。"); |
|
||||
return; |
|
||||
} |
|
||||
try (CSVWriter writer = new CSVWriter(new FileWriter("movies.csv"))) { |
|
||||
String[] header = {"Rank", "Title", "OriginalTitle", "Score", "Year", "Director"}; |
|
||||
writer.writeNext(header); |
|
||||
for (Movie m : movies) { |
|
||||
String[] line = { |
|
||||
String.valueOf(m.getRank()), |
|
||||
m.getTitle(), |
|
||||
m.getOriginalTitle(), |
|
||||
m.getScore(), |
|
||||
m.getYear(), |
|
||||
m.getDirector() |
|
||||
}; |
|
||||
writer.writeNext(line); |
|
||||
} |
|
||||
view.printSuccess("导出成功:movies.csv"); |
|
||||
} catch (Exception e) { |
|
||||
// 使用自定义异常包装原始异常
|
|
||||
SaveFailedException ex = new SaveFailedException("导出CSV文件失败", e); |
|
||||
view.printError(ex.getMessage()); |
|
||||
ex.printStackTrace(); // 打印堆栈,体现使用了自定义异常
|
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
Loading…
Reference in new issue