我有一个Element类的数据。我正在尝试将其值写入文件,但我遇到了麻烦:
< Some process to acquire values into the variable "fieldData" >
// Prepare file output
FileWriter fstream = new FileWriter("C:/output.txt");
BufferedWriter out = new BufferedWriter(fstream);
Element field = fieldData.getElement(i);
out.write(field); // DOESN'T WORK: The method write(int) in the type BufferedWriter is not applicable for the arguments (Element)
out.write(field.getValueAsString()); // DOESN'T WORK: Cannot convert SEQUENCE to String
有关我应如何处理此案的任何建议?另外,对于我来说,看到(即打印到屏幕)可用的静态变量和与对象相关的方法的最佳方法是什么? THX。
更多代码段以帮助调试:
private static final Name SECURITY_DATA = new Name("securityData");
private static final Name FIELD_DATA = new Name("fieldData");
Element securityDataArray = msg.getElement(SECURITY_DATA); // msg is a Bloomberg desktop API object
Element securityData = securityDataArray.getValueAsElement(0);
Element fieldData = securityData.getElement(FIELD_DATA);
Element field = fieldData.getElement(0)
out.write(field); // DOESN'T WORK: The method write(int) in the type BufferedWriter is not applicable for the arguments (Element)
out.write(field.getValueAsString()); // DOESN'T WORK: Cannot convert SEQUENCE to String
答案 0 :(得分:5)
事实证明,这个Bloomberg Prop数据结构至少可以说是啰嗦:
private static final Name SECURITY_DATA = new Name("securityData");
private static final Name FIELD_DATA = new Name("fieldData");
Element securityDataArray = msg.getElement(SECURITY_DATA); // msg is a Bloomberg desktop API object
Element securityData = securityDataArray.getValueAsElement(0);
Element fieldData = securityData.getElement(FIELD_DATA);
Element field = fieldData.getElement(0);
/* the above codes were known at the time of the question */
/* below is what I was shown by a bloomberg representative */
Element bulkElement = field.getValueAsElement(0);
Element elem = bulkElement.getElement(0);
out.write(elem.name() + "\t" + elem.getValueAsString() + "\n");
哇...我不认为他们试图让事情变得简单!我也很好奇是否有一种方法可以让Java打印出正确的方法来追踪数据结构?
答案 1 :(得分:1)
Element element = msg.GetElement("securityData");
for (int i = 0; i < element.NumValues; i++)
{
Element security = element.GetValueAsElement(i); //ie: DJI INDEX
Element fields = security.GetElement("fieldData");//ie: INDX_MEMBERS
for (int j = 0; j < fields.NumElements; j++)
{
Element field = fields.GetElement(j); //a list of members
for (int k = 0; k < field.NumValues; k++)
{
//print field.GetValueAsElement(k); //print members name
}
}
}
答案 2 :(得分:0)
听起来您正在尝试打印输入字段元素的值?
如果是,请尝试:
out.write(field.getAttribute("value"));
答案 3 :(得分:0)