【发布时间】:2019-01-18 06:00:00
【问题描述】:
嘿,我正在做一个学校项目,并正在尝试编写一个问题库。我正在使用允许用户输入数据的 JFrame。然后,我想将数据存储在一个 txt 文件中,以便以后可以检索它。我在将其添加和删除到问题库时遇到问题。关于如何删除某个“问题”的任何提示?
例如,如果我想从以下文件中删除数学问题:
Geography_What is England's capital_Berlin_Manchester_Dover_London_D_3
Maths_What is 2+3_7_9_5_6_C_1
Economics_What is demand_idk_stuff_demand_supply_C_2
删除
String topic = Topic.getSelectedItem().toString();
String question = Question.getText();
String a = AnswerA.getText();
String b = AnswerB.getText();
String c = AnswerC.getText();
String d = AnswerD.getText();
String answer =Correct.getText();
String credit =Points.getText();
String remove = topic + "_" + question + "_" + a + "_" + b + "_" + c + "_" + d + "_" + answer + "_" + credit;
File inputFile = new File("Questions.txt");
File tempFile = new File("QuestionsTemp.txt");
BufferedReader reader = new BufferedReader(new FileReader(inputFile));
BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile));
String lineToRemove = remove;
String currentLine;
while((currentLine = reader.readLine()) != null) {
// trim newline when comparing with lineToRemove
String trimmedLine = currentLine.trim();
if(trimmedLine.equals(lineToRemove)) continue;
try {
writer.write(currentLine + System.getProperty("line.separator"));
} catch (IOException ex) {
Logger.getLogger(QuestionBank.class.getName()).log(Level.SEVERE, null, ex);
}
}
try {
inputFile.delete();
reader.close();
writer.close();
inputFile.delete();
boolean successful = tempFile.renameTo(inputFile);
System.out.println(successful);
}
catch (IOException ex) {
ex.printStackTrace();
}
添加
String topic = Topic.getSelectedItem().toString();
String question = Question.getText();
String a = AnswerA.getText();
String b = AnswerB.getText();
String c = AnswerC.getText();
String d = AnswerD.getText();
String answer =Correct.getText();
String credit =Points.getText();
String answerPos = "AaBbCcDd";
String scorePos = "12345";
try{
FileWriter writer = new FileWriter("Questions.txt", true);
writer.write(System.getProperty("line.separator"));
writer.write(topic);
writer.write("_");
writer.write(question);
writer.write("_");
writer.write(a);
writer.write("_");
writer.write(b);
writer.write("_");
writer.write(c);
writer.write("_");
writer.write(d);
writer.write("_");
writer.write(answer);
writer.write("_");
writer.write(credit);
writer.close();
JOptionPane.showMessageDialog(rootPane, "Success");
}
catch(HeadlessException | IOException e){
JOptionPane.showMessageDialog(rootPane, "Error");
}
}
【问题讨论】:
-
加载您的文件。在内存中操作它。写回文件。
标签: java file variables populate