如何使用一个更改的值覆盖Java中的文件

时间:2015-11-23 02:55:17

标签: java swing

我正在尝试制作一个使用JFrames和JPanels构建投票程序的程序。有一个名为votes.txt的文件格式如下:

1234:Herb Weaselman:false
9876:Marge Magnificent:false
4444:Ingmar Inglenook:false
8888:Hector Heroman:false
5678:Agnes Angular:false

在我的程序开始时,我必须询问用户他们的选民ID,如果他们的输入与文本文件中的一个ID不匹配,则程序结束。我已经成功实现了这一目标,但现在我需要通过更改投票给谁的虚假元素来覆盖这个vot.txt文件。例如,如果用户输入的ID为1234,那么我需要将Herb Weaselman之后的单词更改为true而不是false。我不知道该怎么做。我知道如何写入文件,但不知道如何更改该特定元素。这是我目前的代码:

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.Scanner;
import java.io.*;
import java.util.ArrayList;

public class Assig5 extends JFrame
{

    public Assig5()
    {

    }

    public static void main(String[] args) throws IOException
    {
        LoginWindow loginWindow = new LoginWindow();
        loginWindow.fileReader();
        if(!loginWindow.checkResult(loginWindow.result))
        {
            System.out.println("Invalid Voter ID");
            System.exit(0);
        }
        System.out.println("Continue");

    }
}

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.Scanner;
import java.io.*;
import java.util.ArrayList;

public class LoginWindow extends JFrame
  {
    static ArrayList<String> list = new ArrayList<String>();
    public String result;
    public LoginWindow()
    {
      JFrame frame = new JFrame();
      frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
      result = JOptionPane.showInputDialog(frame, "Enter voter ID:");

    }
    public static void fileReader() throws FileNotFoundException
    {
        Scanner s = new Scanner(new File("voters.txt"));
        while (s.hasNextLine())
        {
          list.add(s.nextLine());
        }
        s.close();
    }
    public static boolean checkResult(String result)
    {
        for(int i = 0; i < list.size(); i++)
        {
          String[] retval = list.get(i).split(":");
          if(retval[0].equals(result))
          {
            return true;
          }
        }
        return false;
    }
  }

任何帮助将不胜感激。提前谢谢。

0 个答案:

没有答案