2011-05-23 65 views
2

我有一个包含用户信息的文本文件,以逗号分隔的行形式。我已经使用了试验和研究的组合,尝试将每行分成单独的信息片段(通过使用分割函数),这些信息可以存储在数组中,然后进行搜索。随着代码我有每个名字和用户名在文本文件重复4次,我怎么不明白。我所做的一切都是让自己更加困惑,但我需要的只是从文本文件中提取每一行,将它分成4个独立的信息片段,并以某种方式将其存储在内存中以进行搜索。我拥有的代码是;从文本文件填充多维数组

package assignment; 


import java.io.*; 

public class readUser { 
public void read() 
{ 
    try{ 

     FileInputStream propertyFile = new FileInputStream("AddUser.txt"); 

     DataInputStream input = new DataInputStream(propertyFile); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(input)); 

     String line; 

     while ((line = reader.readLine()) != null) { 

      String[] items = line.split(","); 
      String[][] usersArray = new String [5][2]; 
      int i; 
      for (String item : items) { 

       for (i = 0; i<items.length; i++){ 
        if (i == 0) { 
         System.out.println("Name: " + items[i]); 
        } else if (i == 1) { 
         System.out.println("Username: " + items[i]); 


       } 
      } 
      } 
      //System.out.println(line); 



     } 
     input.close(); 
    } 
    catch (Exception e){ 

     System.err.println("Error: " + e.getMessage()); 
    } 
     } 

} 

感谢这个

回答

5

任何建议看看你的代码的击穿,问题变得清晰:

for each line in property file (while loop): 
    for each item in line: 
     for each item in line: 
      if item 0 print username 
      else if item 1 print username 
      endif 
     end loop 
    end loop 
end loop 

您的代码基本上是迭代名单items两次。请记住,在Java中,以下两个代码片段是等价的 - 因为它们都迭代数组或集合的值。

一个

for (String item : items) {...} 

for (int i = 0; i < items.length; i++) { 
    String item = items[i]; 
    .... 
} 
+3

+1,为伪代码,而不是实际写海报的代码。对于(i = 0; i camickr 2011-05-23 15:02:16

+0

{}是不需要的。 – Bhushan 2011-05-23 15:13:09