2014-09-04 4 views
0

Вот проблема с чтением файла. Аррайалист с индексом 1 id существует «22222», но это условие if(get.equals(low.pid)), не читающее идентификатор в 1 индексе, считывает значения индекса 2.Проблемы с чтением индексированного файла

если я печатаю witharraylis.get(i) when value of i=1 it show the value of index 2. When I print witharraylist.get (i) `показывает значение id 30, а в индексе 1 значение id равно 20. Может ли кто-нибудь сказать мне, в чем проблема в моем коде? // Логин файл

 import java.util.*; 
    import java.io.*; 
    class Login{ 
    private String name; 
    private String id; 
    private String loginname; 
    private String loginid; 
    static String setid; 
    int j=0; 
    int k=0; 
    ArrayList a1=new ArrayList(); 
    public void setLoginId(String st1) 
    { 
    setid=st1; 
    } 
    public void loginNameId() 
    { 

    String adminname="muhammad ali"; 
    String adminpassword="789123"; 
    Scanner reader=new Scanner(System.in); 
    System.out.println("Enter your login name"); 
    loginname=reader.nextLine(); 
    System.out.println("Enter your pin code"); 
    loginid=reader.nextLine(); 
    if(loginname.equals(adminname)&&loginid.equals(adminpassword)) 
    { 

    System.out.println("password match"); 
    k++; 
    } 
    else 
    { 
     String token[]=null; 
    try{ 
    FileReader fr=new FileReader("login.txt"); 
    BufferedReader br=new BufferedReader(fr); 
    String fileread=br.readLine(); 

    while(fileread!=null) 
    { 
    token=fileread.split(","); 
    name=token[0]; 
    id=token[1]; 
    fileread=br.readLine(); 
    LoginInfo obj1=new LoginInfo(name,id); 
    a1.add(obj1); 

    } 
    br.close(); 
    fr.close(); 
    } 


    catch(IOException ex) 
    { 
    System.out.println(ex); 

    } 
    } 
    } 
    public void search() 
    { 
    for(int i=0;i<a1.size();i++) 
    { 
    LoginInfo p; 
    p=(LoginInfo)a1.get(i); 
    if(loginname.equals(p.cusname)&& loginid.equals(p.cusid)) 
    { 
    String s=loginid; 
    setLoginId(s); 
    Customer call=new Customer(); 
    call.displayMenu(); 
    j++; 
    } 

    } 
    if(j==0&&k==0) 
    { 
    System.out.println("InCorrect password"); 

    } 
    } 


    } 
    Customer file 
    import java.util.*; 
    import java.io.*; 
    public class Customer{ 
     static String cavailablebal; 
     Scanner reader=new Scanner(System.in); 
     ArrayList witharraylist=new ArrayList(); 
     public void displayMenu() 
     { 
     System.out.println ("1----Withdraw Cash"); 
     System.out.println ("2----Cash Transfer"); 
     System.out.println ("3----Deposit Cash"); 
     System.out.println ("4----Display Balance"); 
     System.out.println ("5----Exit "); 
     System.out.println("Enter your choice"); 
     char choice1=reader.next().charAt(0); 
     switch(choice1) 
     { 
      case'1': 
      withDrawal(); 
      break; 
     } 
     }//end displayMenu 

     public void withDrawal() 
     { 

     String id,accountid,name,type,pamount,status; 
     String actualbal; 

     char choice1,choice2,confirm; 
     int withdrawalbal,availablebal; 
     int cactualbal; 
     Login obj2=new Login(); 
     try 
     { 

      FileReader fr=new FileReader("account.txt"); 
      BufferedReader br=new BufferedReader(fr); 
      String fileread=br.readLine(); 
      String tokens[]; 
      while (fileread!=null) 
      { 
      tokens=fileread.split(","); 
      if(tokens.length>=6) 
      { 
       id=tokens[0]; 
       accountid=tokens[1]; 
       name=tokens[2]; 
       type=tokens[3]; 
       pamount=tokens[4]; 
       status=tokens[5]; 
       fileread=br.readLine(); 
       LoginInfo lo=new LoginInfo(id,accountid,name,type,pamount,status); 
       witharraylist.add(lo); 
      } 
      else 
      { 
       System.out.println("wrong format"); 

      } 
      fileread=br.readLine(); 
      } 


      System.out.println("1----Fast Cash"); 
      System.out.println("2----Normal Cash"); 
      System.out.println("3----Exit"); 
      System.out.println("Enter your Choice:"); 
      choice1 = reader.next().charAt(0); 
      switch(choice1) 
      { 
      case'1': 
      System.out.println("1----500"); 
      System.out.println("2----1000"); 
      System.out.println("3----2000"); 
      System.out.println("4----5000"); 
      System.out.println("5----10000"); 
      System.out.println("6----15000"); 
      System.out.println("7----20000 "); 

      System.out.println("Select one of the denominations of money:"); 
      choice2 = reader.next().charAt(0); 
      if(choice2=='1') 
      { 
       System.out.println("Are you sure you want to withdraw Rs.500 (Y/N)?"); 
       confirm = reader.next().charAt(0); 
       if (confirm=='y'||confirm=='Y') 
       { 

       String get=obj2.setid; 
       for(int i=0;i<witharraylist.size();i++) 
       { 
        LoginInfo low=(LoginInfo)witharraylist.get(i); 
        if(get.equals(low.pid))               
        { 

        withdrawalbal=500; 
        actualbal=low.amount; 
        cactualbal=Integer.parseInt(actualbal); 
        availablebal=cactualbal-withdrawalbal; 
        cavailablebal=Integer.toString(availablebal); 
        System.out.println("Your Available balance:"+cavailablebal); 
        witharraylist.set(i,low); 
        writeValues(); 
        } 
       } 

       } 
       else 
       { 

       System.out.println("Transfer not successfully"); 
       withDrawal(); 
       } 
      } 
      break; 
      } 


      br.close(); 
      fr.close(); 
     } 
     catch(IOException ex) 
     { 
      System.out.println(ex); 

     } 

     } 
     public void writeValues() 
     { 
     try{ 
      String line; 
      FileWriter fw=new FileWriter("account.txt"); 
      PrintWriter pw=new PrintWriter(fw); 
      for(int i=0;i<witharraylist.size();i++){ 
      LoginInfo wr=(LoginInfo)witharraylist.get(i); 

      line=wr.pid+","+wr.accountid+","+wr.name+","+wr.type+","+wr.amount+","+wr.status; 
      pw.println(line); 

      } 

      pw.flush(); 
      fw.close(); 
      pw.close(); 
     }catch(IOException ex) 
     { 
      System.out.println(ex); 
     } 
     } 
    }  
//login info file 


import java.util.*; 
import javax.swing.*; 
public class LoginInfo 
{ 
String cusname; 
String cusid; 
String name; 
String pid; 
String accountid; 
String status; 
String type; 
String amount; 

public LoginInfo(String name,String id) 
{ 
this.cusname=name; 
this.cusid=id; 
} 
public LoginInfo(String id,String accountid,String name,String type,String amount,String status) 

{ 
this.pid=id; 
this.accountid=accountid; 
this.name=name; 
this.type=type; 
this.amount=amount; 
this.status=status; 

} 

} 
    // login.txt 
zeshaan,11111 
nadeem,22222 
ali waqar,33333 
waseem,44444 
jawad,55555 
    //Account.txt file 
11111,10,zeshaan,current,3500,active 
22222,20,nadeem,saving,44500,active 
33333,30,ali waqar,saving,44500,active 
44444,40,waseem,saving,44500,active 
55555,50,waseem,saving,44500,active 
66666,60,waseem,saving,44500,active 
77777,70,waseem,saving,44500,active 
+1

Пожалуйста, отформатируйте свой код _and_ свой вопрос. Оба трудно читать. – Seelenvirtuose

+0

Как насчет добавления типа в ArrayList? Если вы не кодируете в MS Word, он должен в любом случае выделить его как предупреждение. – MightyPork

+0

, пожалуйста, покажите нам свой файл account.txt (или его часть, если он слишком длинный) –

ответ

0

Я просматривал ваши коды снова и снова. Ваша программа, вероятно, рассматривает две строки файла .txt как одну и пропускает второй loginInfo, поскольку вы проверяете только первые 6 индексов токенов []. Только возможное объяснение заключается в том, что ваш файл account.text не соответствует указанному вами формату. Возможно, строка отформатирована неправильно или что-то еще. Проверьте файл .txt.

+0

ege я напишу txt-файл в своем коде и смогу проверить его –

+0

Если это точно так же, как вы заявили в конце кода, я действительно не могу найти ошибку. –

+0

Кто-нибудь мне помог PLLZ –

Смежные вопросы