简体   繁体   English

BufferedReader读取太多次

[英]BufferedReader read too many times

I can't understand because this piece of code read too many times the file. 我不明白,因为这段代码读取文件的次数过多。 The same code, with a CSV with a special char as separator, works great...but with a CSV with ; 相同的代码,带有带特殊字符的CSV作为分隔符,效果很好...但是带有; as separator reads too many times the same file. 因为分隔符读取同一文件的次数过多。

Here the cose: 这里是:

public static ArrayList<Asset> retriveCIInstances(File sap_csv_source, String parseChar) throws IOException {
    System.out.println("PARSING WITH THE CHAR: " + parseChar);
    ArrayList<Asset> res = new ArrayList<Asset>();      
    FileInputStream fstream = new FileInputStream(sap_csv_source);        
    DataInputStream in = new DataInputStream(fstream);
    BufferedReader br = new BufferedReader(new InputStreamReader(in));
    String strLine; 
    while ((strLine = br.readLine()) != null)   {
        System.out.println("LINE CSV: " + strLine);
        String[] raw = strLine.split(parseChar);
        res.add(new Asset(null,raw[1],raw[0],raw[8], null,null));
    }
    in.close();
    fstream.close();
    return res;
}

and the two files content are: (doesn't work) 并且两个文件的内容是:(不起作用)

ASSET_TAG;SAP Purchase Order number;SAP Purchase Order position number;Asset Type;Asset Category;Asset description;Manufacturer;Model;Serial Number;Location ID;Delivery Note number;Delivery note date;EOF
B1CSSW01SN78JJNYU76U;4500136741;20;Switch;Network;;Cisco;WS-C2960-24LT-L;SN78JJNYU76U;X-MAG-VIRTUA;TEST11FEB2014|17|4500136741-20;11/02/2014;EOF
B1CSSW01SNRU7687JUIUJ;4500136741;20;Switch;Network;;Cisco;WS-C2960-24LT-L;SNRU7687JUIUJ;X-MAG-VIRTUA;TEST11FEB2014|17|4500136741-20;11/02/2014;EOF
B1CSSW01SNFGH6765Y66;4500136741;20;Switch;Network;;Cisco;WS-C2960-24LT-L;SNFGH6765Y66;X-MAG-VIRTUA;TEST11FEB2014|17|4500136741-20;11/02/2014;EOF
B1CSSW01SN3435REG45Y;4500136741;20;Switch;Network;;Cisco;WS-C2960-24LT-L;SN3435REG45Y;X-MAG-VIRTUA;TEST11FEB2014|17|4500136741-20;11/02/2014;EOF

or (works) 或(有效)

ASSET_TAG¤SAP Purchase Order number¤SAP Purchase Order position number¤Asset Type¤Asset Category¤Asset description¤Manufacturer¤Model¤Serial Number¤Location ID¤Delivery Note number¤Delivery note date¤EOF
B1HPDT06SN345TREG5Y¤4500117819¤10¤Desktop¤Workstation¤¤HP¤8200 Elite SFF Standard¤SN345TREG5Y¤X-RM-0047_04¤TEST_HW00_11FEB14|17|4500117819-10¤11/02/2014¤EOF
B1HPDT06SN56654GHTD¤4500117819¤10¤Desktop¤Workstation¤¤HP¤8200 Elite SFF Standard¤SN56654GHTD¤X-RM-0047_04¤TEST_HW00_11FEB14|17|4500117819-10¤11/02/2014¤EOF
B1HPDT06SNGJ987IKJJH¤4500117819¤10¤Desktop¤Workstation¤¤HP¤8200 Elite SFF Standard¤SNGJ987IKJJH¤X-RM-0047_04¤TEST_HW00_11FEB14|17|4500117819-10¤11/02/2014¤EOF
B1HPDT06SN65765HT56¤4500117819¤10¤Desktop¤Workstation¤¤HP¤8200 Elite SFF Standard¤SN65765HT56¤X-RM-0047_04¤TEST_HW00_11FEB14|17|4500117819-10¤11/02/2014¤EOF

And the output is: 输出为:

LINE CSV: ASSET_TAG;SAP Purchase Order number;SAP Purchase Order position
;Asset Type;Asset Category;Asset description;Manufacturer;Model;Serial Num
cation ID;Delivery Note number;Delivery note date;EOF
LINE CSV: B1CSSW01SN78JJNYU76U;4500136741;20;Switch;Network;;Cisco;WS-C296
-L;SN78JJNYU76U;X-MAG-VIRTUA;TEST11FEB2014|17|4500136741-20;11/02/2014;EOF
LINE CSV: B1CSSW01SNRU7687JUIUJ;4500136741;20;Switch;Network;;Cisco;WS-C29
T-L;SNRU7687JUIUJ;X-MAG-VIRTUA;TEST11FEB2014|17|4500136741-20;11/02/2014;E
LINE CSV: B1CSSW01SNFGH6765Y66;4500136741;20;Switch;Network;;Cisco;WS-C296
-L;SNFGH6765Y66;X-MAG-VIRTUA;TEST11FEB2014|17|4500136741-20;11/02/2014;EOF
LINE CSV: B1CSSW01SN3435REG45Y;4500136741;20;Switch;Network;;Cisco;WS-C296
-L;SN3435REG45Y;X-MAG-VIRTUA;TEST11FEB2014|17|4500136741-20;11/02/2014;EOF
LINE CSV: ASSET_TAG;SAP Purchase Order number;SAP Purchase Order position
;Asset Type;Asset Category;Asset description;Manufacturer;Model;Serial Num
cation ID;Delivery Note number;Delivery note date;EOF
LINE CSV: B1CSSW01SN78JJNYU76U;4500136741;20;Switch;Network;;Cisco;WS-C296
-L;SN78JJNYU76U;X-MAG-VIRTUA;TEST11FEB2014|17|4500136741-20;11/02/2014;EOF
LINE CSV: B1CSSW01SNRU7687JUIUJ;4500136741;20;Switch;Network;;Cisco;WS-C29
T-L;SNRU7687JUIUJ;X-MAG-VIRTUA;TEST11FEB2014|17|4500136741-20;11/02/2014;E
LINE CSV: B1CSSW01SNFGH6765Y66;4500136741;20;Switch;Network;;Cisco;WS-C296
-L;SNFGH6765Y66;X-MAG-VIRTUA;TEST11FEB2014|17|4500136741-20;11/02/2014;EOF
LINE CSV: B1CSSW01SN3435REG45Y;4500136741;20;Switch;Network;;Cisco;WS-C296
-L;SN3435REG45Y;X-MAG-VIRTUA;TEST11FEB2014|17|4500136741-20;11/02/2014;EOF
LINE CSV: ASSET_TAG;SAP Purchase Order number;SAP Purchase Order position
;Asset Type;Asset Category;Asset description;Manufacturer;Model;Serial Num
cation ID;Delivery Note number;Delivery note date;EOF
LINE CSV: B1CSSW01SN78JJNYU76U;4500136741;20;Switch;Network;;Cisco;WS-C296
-L;SN78JJNYU76U;X-MAG-VIRTUA;TEST11FEB2014|17|4500136741-20;11/02/2014;EOF
LINE CSV: B1CSSW01SNRU7687JUIUJ;4500136741;20;Switch;Network;;Cisco;WS-C29
T-L;SNRU7687JUIUJ;X-MAG-VIRTUA;TEST11FEB2014|17|4500136741-20;11/02/2014;E
LINE CSV: B1CSSW01SNFGH6765Y66;4500136741;20;Switch;Network;;Cisco;WS-C296
-L;SNFGH6765Y66;X-MAG-VIRTUA;TEST11FEB2014|17|4500136741-20;11/02/2014;EOF
LINE CSV: B1CSSW01SN3435REG45Y;4500136741;20;Switch;Network;;Cisco;WS-C296
-L;SN3435REG45Y;X-MAG-VIRTUA;TEST11FEB2014|17|4500136741-20;11/02/2014;EOF
LINE CSV: ASSET_TAG;SAP Purchase Order number;SAP Purchase Order position
;Asset Type;Asset Category;Asset description;Manufacturer;Model;Serial Num
cation ID;Delivery Note number;Delivery note date;EOF
LINE CSV: B1CSSW01SN78JJNYU76U;4500136741;20;Switch;Network;;Cisco;WS-C296
-L;SN78JJNYU76U;X-MAG-VIRTUA;TEST11FEB2014|17|4500136741-20;11/02/2014;EOF
LINE CSV: B1CSSW01SNRU7687JUIUJ;4500136741;20;Switch;Network;;Cisco;WS-C29
T-L;SNRU7687JUIUJ;X-MAG-VIRTUA;TEST11FEB2014|17|4500136741-20;11/02/2014;E
LINE CSV: B1CSSW01SNFGH6765Y66;4500136741;20;Switch;Network;;Cisco;WS-C296
-L;SNFGH6765Y66;X-MAG-VIRTUA;TEST11FEB2014|17|4500136741-20;11/02/2014;EOF
LINE CSV: B1CSSW01SN3435REG45Y;4500136741;20;Switch;Network;;Cisco;WS-C296
-L;SN3435REG45Y;X-MAG-VIRTUA;TEST11FEB2014|17|4500136741-20;11/02/2014;EOF

for four lines it prints a lot of lines...I don't understand. 对于四行它会打印很多行...我不明白。

Any idea? 任何想法?

Thanks in advance 提前致谢

It was a stupid problem...the file was written multiple times by an external source. 这是一个愚蠢的问题……文件是由外部源多次写入的。 Sorry for the inconvenience! 抱歉给你带来不便! I'm mortified 我很愧

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM