Заполнение и удаление данных из txt.file

Привет, я работаю над школьным проектом и пытаюсь закодировать банк вопросов. Я использую JFrame, который позволяет пользователю вводить данные. Затем я хочу сохранить данные в текстовом файле, чтобы потом их можно было получить. У меня возникли проблемы с добавлением и удалением его в банк вопросов. Какие-нибудь подсказки, как удалить определенный «вопрос» ?.

Например, если я хочу удалить математический вопрос из следующего файла:

 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");
        }
    }

Загрузите ваш файл. Управляйте им в памяти. Запишите файл обратно.

Joseph Larson 10.08.2018 17:26
0
1
26
1

Ответы 1

Я бы посоветовал вам использовать библиотеку сериализации, например, для сохранения таких объектов, как Gson. Тогда вам будет проще управлять сохранением и загрузкой. Или используйте стандартный формат, например CSV или XML.

Другие вопросы по теме