我有一个包含用户信息的文本文件,以逗号分隔的行格式。我已经使用了实验和研究的组合来尝试将每一行分成单独的信息(通过使用拆分函数),这些信息可以存储在数组中,然后进行搜索。使用代码,我在文本文件中的每个名称和用户名每次重复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());
}
}
}
感谢您对此提出的任何建议
答案 0 :(得分: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中,以下两个代码片段是等效的 - 因为它们都迭代数组或集合的值。
A
for (String item : items) {...}
B
for (int i = 0; i < items.length; i++) {
String item = items[i];
....
}