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.
76 lines
2.4 KiB
76 lines
2.4 KiB
package Deal;
|
|
|
|
import Base.Question;
|
|
|
|
import java.io.*;
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.*;
|
|
|
|
public class Deal_file {
|
|
private static final String BASE_DIR="试卷/";
|
|
|
|
public Deal_file() {
|
|
File baseDir = new File(BASE_DIR);
|
|
if (!baseDir.exists()) {
|
|
if (!baseDir.mkdirs())
|
|
System.out.println("目录创建失败!");
|
|
}
|
|
}
|
|
|
|
public void savePaper(ArrayList<Question> paper, String username) {
|
|
String userDirPath = BASE_DIR + username + "/";
|
|
File userDir = new File(userDirPath);
|
|
if (!userDir.exists()) {
|
|
if (!userDir.mkdirs()) {
|
|
System.out.println("目录创建失败!");
|
|
return;
|
|
}
|
|
}
|
|
String timestamp = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(new Date());
|
|
String filePath = userDirPath + timestamp + ".txt";
|
|
|
|
try (PrintWriter writer = new PrintWriter(new FileWriter(filePath))) {
|
|
for (int i = 0; i < paper.size(); i++) {
|
|
writer.println(paper.get(i).toString());
|
|
if (i < paper.size() - 1) {
|
|
writer.println();
|
|
}
|
|
}
|
|
System.out.println("试卷已保存至: " + new File(filePath).getAbsolutePath());
|
|
} catch (IOException e) {
|
|
System.out.println("保存文件出错: " + e.getMessage());
|
|
}
|
|
}
|
|
|
|
public Set<String> Check_Existing(String username) {
|
|
Set<String> questions = new HashSet<>();
|
|
String userDirPath = BASE_DIR + username + "/";
|
|
File userDir = new File(userDirPath);
|
|
|
|
if (!userDir.exists() || !userDir.isDirectory()) {
|
|
return questions;
|
|
}
|
|
|
|
File[] files = userDir.listFiles();
|
|
if (files == null) {
|
|
return questions;
|
|
}
|
|
|
|
for (File file : files) {
|
|
if (file.isFile() && file.getName().endsWith(".txt")) {
|
|
try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
|
|
String line;
|
|
while ((line = reader.readLine()) != null) {
|
|
if (!line.trim().isEmpty()) {
|
|
questions.add(line.trim());
|
|
}
|
|
}
|
|
} catch (IOException e) {
|
|
return questions;
|
|
}
|
|
}
|
|
}
|
|
return questions;
|
|
}
|
|
}
|