我有txt文件,看起来像这样,我想将其转换为对象,然后用它填充sqlite db。当我试图解析数据时,出现了奇怪的错误。
[Dokument]
DataWyst=14.01.15
SymbolKontrahenta=KUMA
[ZawartoscDokumentu]
[Poz1]
Nazwa=MML
Symbol=5902317000160
CenaNetto=169
SymbolDostawcy= 69 659
[Poz2]
Nazwa=ŚMT
Symbol=5902317100433
CenaNetto=1430
SymbolDostawcy= 54 568
[Poz3]
Nazwa=tka
Symbol=1204
CenaNetto=1008
SymbolDostawcy= 7 78
[Dokument]
DataWyst=14.01.15
SymbolKontrahenta=EA
[ZawartoscDokumentu]
[Poz1]
Nazwa=dag
Symbol=5900643030141
CenaNetto=358
SymbolDostawcy=
[Poz2]
Nazwa=DANS
Symbol=59026990
CenaNetto=234
SymbolDostawcy= 4 18
我试图以这种方式将此文本解析为对象:
int i_liczba_dokumentow = liczba_dokumentow.size();
Dokument[] l_dok = new Dokument[i_liczba_dokumentow];
System.out.println(i_liczba_dokumentow);
try {
Scanner s = new Scanner(new File("D:\\Temp.txt"));
for (int i = 0; i < l_dok.length; i++) {
while (s.hasNextLine()) {
if (s.next() == "[Dokument]") {
l_dok[i] = new Dokument();
String line = s.nextLine();
if (line == "DataWyst=") {
String[] si = line.split("\\=");
l_dok[i].DataWyst = si[1];
}
if (s.next() == "SymbolKontrahenta=") {
String line2 = s.nextLine();
String[] si = line2.split("\\=");
l_dok[i].SymbolKontrahenta = si[1];
}
while (s.hasNextLine()) {
if (s.next() == "[Poz") {
l_dok[i].Elementy.add(new Element());
}
if (s.next() == "Nazwa=") {
String line2 = s.nextLine();
String[] si = line2.split("\\=");
l_dok[i].Elementy.get(i).Nazwa = si[1];
}
if (s.next() == "Symbol=") {
String line2 = s.nextLine();
String[] si = line2.split("\\=");
l_dok[i].Elementy.get(i).Symbol = si[1];
}
if (s.next() == "CenaNetto=") {
String line2 = s.nextLine();
String[] si = line2.split("\\=");
l_dok[i].Elementy.get(i).CenaNetto = si[1];
}
if (s.next() == "SymbolDostawcy=") {
String line2 = s.nextLine();
String[] si = line2.split("\\=");
l_dok[i].Elementy.get(i).SymbolDostawcy = si[1];
}
}
}
}
s.close();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for (int i = 0; i < l_dok.length; i++) {
System.out.println("Pozycja: " + l_dok[i].DataWyst + " "
+ l_dok[i].SymbolKontrahenta);
System.out.println("Element: " + l_dok[i].Elementy.get(i).Nazwa + " "
+ l_dok[i].Elementy.get(i).Symbol+ " "+l_dok[i].Elementy.get(i).CenaNetto+ " "+ l_dok[i].Elementy.get(i).SymbolDostawcy );
}
但循环显示错误如:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:907)
at java.util.Scanner.next(Scanner.java:1416)
at TextFormatter.main(TextFormatter.java:90)
第90行是if (s.next() == "[Dokument]") {
感谢您的线索,建议,主要是您的时间。如果您不知道如何解决此任务,请投票支持我的帖子。