【发布时间】:2016-03-14 12:24:32
【问题描述】:
例如,我的文本文件包含以下内容:
1/hannah/18
2/jeorge/20
安排就像votersnumber/name/age 现在我希望我的程序读取文件,确定文本文件中的votersnumber 是否包含用户输入的选民号码,然后执行以下程序。如果文件不包含/不匹配用户输入的内容,程序将让用户再次输入选民号码。
我尝试通过以下代码做到这一点:
File Orig_outFile = new File("C:\\Users/Regz-pc/workspace/lozada/voters.txt");
BufferedReader infile = new BufferedReader(new FileReader(Orig_outFile));
String voters[]=new String[10+1]; //purpose of this is to determine whether the voter already voted. the [10+1] is not final but just a sample/just for test. but i will still be using this
String allVoters="";
for(int index=1;index<voters.length;index++){
voters[index]="NOT VOTED YET";
allVoters=allVoters+"voter["+index+"]="+voters[index]+"\n";
}
vNum2=Integer.parseInt(JOptionPane.showInputDialog("Enter voters number: "));//user will enter the voters number
vNum=Integer.toString(vNum2);
String line=null;
while((line=infile.readLine())!=null){
String [] info=line.split("/");//divide the votersnumber/name/age
if(!info[0].contains(vNum) && voters[vNum2].contains("VOTER ALREADY VOTED")){//determine if the vNum2 exist in text file
JOptionPane.showMessageDialog(null, "Voter already voted or Voter not registered. Please try again");
vNum2=Integer.parseInt(JOptionPane.showInputDialog("Enter voters number: "));
}
else{
voters[vNum2]="VOTER ALREADY VOTED";
JOptionPane.showMessageDialog(null, allVoters);
President();
}
}
infile.close();
但此代码只会执行一次,但执行后会出现错误消息Voter already voted or Voter not registered. Please try again,然后让用户再次输入选民号码,然后返回主菜单。当我再次尝试执行该程序时,它只会让我输入选民号码,然后返回主菜单。
【问题讨论】:
标签: java text file-handling