// FileManager.java import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.List; public class FileManager { public static final String ROOT_PATH = "./试卷/"; public void savePaper(User user, List questions) throws IOException { String userDirectory = ROOT_PATH + user.getUsername(); Path userPath = Paths.get(userDirectory); if (!Files.exists(userPath)) { Files.createDirectories(userPath); } String fileName = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd-HH-mm-ss")) + ".txt"; Path filePath = userPath.resolve(fileName); try (PrintWriter writer = new PrintWriter(new FileWriter(filePath.toFile(), StandardCharsets.UTF_8))) { for (int index = 0; index < questions.size(); index++) { writer.printf("%d. %s%n%n", index + 1, questions.get(index)); } } } public boolean checkQuestion(String question, User user) throws IOException { String userDirectory = ROOT_PATH + user.getUsername(); Path userPath = Paths.get(userDirectory); if (!Files.exists(userPath)) { return true; } else { File directory = new File("./试卷/" + user.getUsername()); File[] files = directory.listFiles(); if (files != null) { for (File file : files) { for (String line : Files.readAllLines(file.toPath())) { if (!line.isEmpty()) { line = line.replaceFirst("^\\d+\\.\\s*", ""); if (line.equals(question)) { System.out.println("有道一样的题"); return false; } } } } } } return true; } }