diff --git a/FileManager.java b/FileManager.java new file mode 100644 index 0000000..2238d16 --- /dev/null +++ b/FileManager.java @@ -0,0 +1,57 @@ +// 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; + } +} \ No newline at end of file