[英]Java system.out not printing all occurances
我目前正在解析XML文檔,並將XML數據存儲在String []中。 這是我的工作:
db = dbf.newDocumentBuilder();
Document dom = db.parse(in);
Element docElem = dom.getDocumentElement();
NodeList valuesList= docElem.getElementsByTagName("values");
Element value = (Element) valuesList.item(0);
//Split on every white space
String[] myValues = value.getFirstChild().getNodeValue().split("\\s+");
System.out.println(myValues.length);
//Output: 5400
for(String val : myValues){
System.out.println("Value: " + val);
//This prints out random amount of lines in the console, see figure.
}
循環的輸出變化。 參見下圖。
結果可能是第一次執行4145,第二次執行4198。
因為String []包含5400個項目,所以此輸出不應該是5400行嗎? 為什么不呢?
感謝您的任何解釋。
馬庫斯
System.out
進入logcat,而logcat只是容量有限的緩沖區。 超過容量時,將丟棄較舊的條目。 您的System.out
消息在緩沖區中的比例取決於系統中其他logcat活動。
如果Logcat大小限制不是您的問題,請嘗試以下方法-
//Split on every white space
String[] myValues = value.getFirstChild().getNodeValue().split("\\s+");
System.out.println(myValues.length);
//Output: 5400
List<String> stringList = Arrays.asList(myValues);
List<String> list = Collections.synchronizedList(stringList);
synchronized(list)
{
Iterator<String> iterator = list.iterator();
while (iterator.hasNext())
System.out.println(iterator.next());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.