我有一个这种形式的文本文件:
ID
FName
LName
City
Age
;
22333;Giannis;Georgakopoulos;Patisiwn, Athens;42
22222;Maria;Nikolakopoulou;Kabalas 33, Aigaleo;34
84567;Konstantinos;Santorinaios;Karaiskaki 44, Patisia;29
我想阅读文本并将第一个元素(ID,FName,LName,City,Age)放到;
到数组中。在此之后,我想把其余的放到另一个。
最后我想把它们放在一个数组中,形式如下:
ID FName LName City Age
22333;Giannis;Georgakopoulos;Patisiwn, Athens;42
22222;Maria;Nikolakopoulou;Kabalas 33, Aigaleo;34
84567;Kostas;Santorinaios;Karaiskaki 44, Patisia;29
我已经开始使用以下代码,但我无法完成它。
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new FileReader(".../testing"));
String line = null;
String[] pinakas=new String[6];
int i=0;
while (!(line=br.readLine()).equals(";")) {
pinakas[i] = line;
i++;
System.out.println(line);
}
br.close();
}
答案 0 :(得分:1)
String data = null;
try {
BufferedReader bufferedReader = new BufferedReader(new FileReader(filename));
while ((data = bufferedReader.readLine()) != null) {
String[] tempData = data.split("\t");
for (int j = 0; j <= 4; j++) {
dataFromFile[totalRecords][j] = (int) Float.parseFloat(tempData[j]);
}
totalRecords++;
}
} catch (FileNotFoundException ex) {
System.out.println("file not found");
} catch (IOException ex) {
System.out.println("error in opening file");
}
这里我正在阅读完整的第一行并按空格分割。并将记录存储到2by2数组中。这可能对你有所帮助!
答案 1 :(得分:0)
让我试着给你一点方向。
List<Person> list = new ArrayList<Person>();
String line;
try (
// open an input stream
InputStream fileInputStream = new FileInputStream("".../testing"");
// read file as UTF-8
InputStreamReader reader = new InputStreamReader(fileInputStream, Charset.forName("UTF-8"));
// open a BufferedReader to read line-by-line
BufferedReader br = new BufferedReader(reader);
) {
while ((line = br.readLine()) != null) {
// split the `line` on ";"
// [0] - ID
// [1] - FName
// [2] - LName
// [3] - City
// [4] - Age
String[] objects = line.split(";");
int ID = Integer.parseInt(objects[0]);
String fName = objects[1];
String lName = objects[2];
String city = objects[3];
int age = Integer.parseInt(objects[4]);
list.add( new Person(ID, fName, lName, city, age) );
}
}
System.out.println(list);
了解Person
对象的外观。
class Person {
int ID;
String fName;
String lName;
String city;
int age;
public Person(int ID, String fName, String lName, String city, int age) {
this.ID = ID;
this.fName = fName;
this.lName = lName;
this.city = city;
this.age = age;
}
@Override
public String toString() {
return ID + ";" + fName + ";" + lName + ";" + city ";" + age;
}
}
打开的文件是逐行读取的。创建一个名为Person
的对象,将ID,FName,LName,City和Age作为字段,这将是一个好主意。然后,您可以为文件中的每一行创建一个新的List<Person>
条目。
这有帮助吗?