使用java将Element对象写入文件

时间:2010-09-01 21:16:59

标签: java data-structures bloomberg

我有一个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

4 个答案:

答案 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)