2014-03-02 102 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