我已經編寫了用於讀取Java中的結構化文件並提取行內容以創建對象(Person類型)的代碼。閱讀Java中的結構化文件
該文件具有以下結構:[personNumber],[PERSONNAME],[人士],例如
0,福爾摩斯,44
1,哈利波特,17
2 ,傑克斯派洛,50
...
文件進行讀取和提取信息的代碼是:
RandomAccessFile rf = new RandomAccessFile(fileName, "rw");
String line;
File myFile = new File(fileName);
scan = new Scanner(myFile);
String[] split;
//Read file
while((line = rf.readLine()) != null) {
split = scan.nextLine().split(", ");
pnumber = Integer.parseInt(split[0]);
name = split[1];
age = Integer.parseInt(split[2]);
thePerson = new Person(name, age, pnumber);
personList.addLast(thePerson);
}
這很好,並且Person對象被正確添加到我編程的單個鏈接列表中。這裏沒有問題。
但是,程序也應該能夠閱讀以下格式的文本文件:
#People
0,福爾摩斯,44
1,哈利波特,17
2,傑克斯派洛,50
#Dogs
0,史,10
1,米盧,7
2,疤痕,15
有一種方法,以檢查是否正被讀取的行包含一個井號(#)符號,其中該計劃的理解是不是要分割這條線,而只是開始一個新的分類?這樣,您就可以根據以下幾行來決定要創建哪種類型的對象,例如人物和狗的對象。爲了簡單起見,類型(Person,Dog)的順序將始終相同,但每個類別後面的行數會有所不同。因此,我需要幫助確定一行是否包含#符號,表示新類別的開始,並且只從以下行創建對象。
呃,爲什麼使用純文本,而不是數據的文本格式,例如,比方說,JSON? – fge