2014-03-02 159 views
0

我正在嘗試製作不同類型的登錄系統。我想讓它,以便它讀完一個.txt文件,其中包含詳細信息,如本 (格式爲用戶名 - 密碼 - 布爾):Java緩衝讀取器讀取

guest51 password true 
guest52 bus true 
guest53 password123 true 
guest54 123password false 

然而,這裏是它變得非常困難。然後我想檢查布爾值,如果它是「真」,跳過帳戶,如果不是,則使用它。從那裏開始,當賬戶「完成」時,將其設置爲「true」。

我希望使用到的東西,如:

username = nextAvaialableAccount.getUsername(); 
password = nextAvailableAccount.getPassword(); 

我對這個是怎麼做的一個很基本的概念,但總體來說我對我將如何實現布爾部分困惑。我並不在乎性能,我只是希望系統能夠完美地工作,所以我可以不斷刪除帳戶並將其添加到.txt中。我對其他基本文件如.xml(guest51等)開放,我只是很困惑如何真正「設計」系統來做到這一點。

編輯:我想讓它改變我使用的任何帳戶的.txt中的布爾值。 最糟糕的是,我必須在Java中完成它(我仍然不知道該怎麼辦)

再次編輯:或者是否有可能我甚至可以在一個文件夾類型的方法,像這樣: ./user/accounts/test51/

在該目錄中,我將創建details.txt,其中包含username,pass和boolean。我想製作的系統將用於像20個帳戶,沒有大的

+0

'如果(inputString.equals( 「真」))booleanVariable = TRUE; else booleanVariable = false;' –

+1

@ PM77-1我想他想替換文本文件的布爾值 – xp500

+0

@ xp500 - 可能是。不清楚。 –

回答

0

這從您的文本文件中讀取您的示例數據,將用戶名和密碼放入兩個字符串,並將布爾值寫入boolean。除了將這些信息打印到屏幕上(根本沒有寫出來的文件 - 這是一個只讀的例子),它不會做任何事情,但它應該有希望讓你走上正路。

import java.io.File; 
    import java.io.IOException; 
    import org.apache.commons.io.FileUtils; 
    import org.apache.commons.io.LineIterator; 
    import org.apache.commons.lang.StringUtils; 
/** 
    <P>{@code java ReadInActiveAccountsFromFile C:\java_code\username_password_active.txt}</P> 
**/ 
public class ReadInActiveAccountsFromFile { 
    public static final void main(String[] rqdInputPathInStrArray) { 
     //Read command-line 
     String sSrc = null; 
     try { 
      sSrc = rqdInputPathInStrArray[0]; 
     } catch(IndexOutOfBoundsException ibx) { 
      System.out.println("Missing one-and-only required parameter: The full path to Java source-code file."); 
      return; 
     } 

     //Open input file 
     File inputFile = new File(sSrc); 
     LineIterator lineItr = null; 
     try { 
      lineItr = FileUtils.lineIterator(inputFile); 
     } catch(IOException iox) { 
      System.out.println("Cannot open \"" + sSrc + "\". " + iox); 
      return; 
     } 

     while(lineItr.hasNext()) { 
     String line = lineItr.next(); 
     String[] userPassIsActive = line.split(" "); 
     String username = userPassIsActive[0]; 
     String password = userPassIsActive[1]; 
     boolean isActive = Boolean.parseBoolean(userPassIsActive[2]); 

     System.out.println("username=" + username + ", password=" + password + ", isActive=" + isActive + ""); 
     } 
    } 
} 

輸出:

[C:\java_code\]java ReadInActiveAccountsFromFile C:\java_code\username_password_active.txt 
username=guest51, password=password, isActive=true 
username=guest52, password=bus, isActive=true 
username=guest53, password=password123, isActive=true 
username=guest54, password=123password, isActive=false