Erro ao escrever arquivo XML com out.writeObject(xmlFile) da classe ObjectOutputStream

Pessoal, estou com um probleminha para escrever em um arquivo xml.

Verifiquei o conteúdo da String através do System.out.println(xmlFile.toString()); e está com os dados corretos, acredito que o problema seja no bloco:

ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file));
out.writeObject(xmlFile);
out.close();

Fazendo com que o arquivo products.xml gerado apareça com esta sujeira na frente como segue:

’<products><product>
  <productId>1</productId>
  <productName>Chai</productName>
  <supplierId>1</supplierId>
  <categoryId>1</categoryId>
  <quantityPerUnit>10 boxes x 20 bags</quantityPerUnit>
  <unitPrice>18.0</unitPrice>
  <unitsInStock>39.0</unitsInStock>
  <unitsOnOrder>0</unitsOnOrder>
  <reorderLevel>10</reorderLevel>
</product></products>

Estou tentando ler este arquivo em uma grid e a rotina não funciona com esta sujeira no início do xml.

Alguém teria alguma sugestão de como corrigir?

Segue abaixo a implementação utilizando o XStream para montar a String em um formato XML.


package app.teste;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;

public class Run {
	
	private static final String FILE = "C:\\Projetos\\Workspaces\\checklist-workspace\\XStream\\files\\products.xml";
	
	public static void main(String[] args){

		XStream xstream = new XStream(new DomDriver());
		
		xstream.alias("product", Product.class);
		
		Product product = new Product();
		
		product.setProductId("1");
		product.setProductName("Chai");
		product.setSupplierId("1");
		product.setCategoryId("1");
		product.setQuantityPerUnit("10 boxes x 20 bags");
		product.setUnitPrice(new Double(18.0000));
		product.setUnitsInStock(new Double(39));
		product.setUnitsOnOrder("0");
		product.setReorderLevel("10");
		
		String xmlHead = "<products>";
		String xmlBody = xstream.toXML(product);
		String xmlFooter = "</products>";
		String xmlFile = xmlHead + xmlBody + xmlFooter;
		
		String file = FILE;

		try{
	
			ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file));
			out.writeObject(xmlFile);
			out.close();
		
			System.out.println(xmlFile.toString()); 
		}catch(IOException ex){
			ex.printStackTrace();
		}
		
	}
	
}

Pessoal, pelo que pude perceber me parece que é acrescentado um código criptografado além do simbolo de Copyright, alguem saberia informar o que precisa ser feito para não gerar o arquivo XML com este código?

Agradeço muito a colaboração

Descobri uma forma de resolver o problema substituindo o bloco referente à geração do arquivo e escrita no mesmo da seguinte forma:

private static final String FILE = "..\\products.xml";

String file = FILE;

File realFile = new File(file);
 
if(!realFile.exists()){
    realFile.createNewFile();
}
 
FileWriter fileWritter = new FileWriter(realFile,true); //true = append file
BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
bufferWritter.write(xmlFile);
bufferWritter.close();

Resolvido,