I want to write output file in UTF-8 but couldn't find a way. Can anyone please help me to write the xml in UTF-8
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class ReadXMLFile2 {
    private static byte[] contentInBytes;                
    public static void main(String[] args) {
     try {
      File file = new File("C:\\Users\\abc\\Desktop\\Xml_format\\Done\\part3.xml");
      DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
      Document doc = dBuilder.parse(file);
      // System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
      if (doc.hasChildNodes()) {
            printNote(doc.getChildNodes());
      }
    } catch (Exception e) {
       System.out.println(e.getMessage());
    }
  }
  private static void printNote(NodeList nodeList) {
    for (int count = 0; count < nodeList.getLength(); count++) {
       Node tempNode = nodeList.item(count);
       // make sure it's element node.
       if (tempNode.getNodeType() == Node.ELEMENT_NODE) {
         System.out.println("FIELD" +""+ tempNode.getNodeName() + "=" + tempNode.getTextContent());
         if (tempNode.hasAttributes()) {        
             // get attributes names and values
             NamedNodeMap nodeMap = tempNode.getAttributes();
             for (int i = 0; i < nodeMap.getLength(); i++) {        
                 Node node = nodeMap.item(i);
                 System.out.println("attr name : " + node.getNodeName());
                 System.out.println("attr value : " + node.getNodeValue());
             }
         }
         if (tempNode.hasChildNodes()) {        
             // loop again if has child nodes
             printNote(tempNode.getChildNodes());
         }
         System.out.println(tempNode.getNodeName());
         try {
            File file =new File("C:\\Users\\abc\\Desktop\\Xml_format\\Done\\test.txt");
            String data ="#DREFIELD" +""+ tempNode.getNodeName() + "=" + tempNode.getTextContent()+"";
            //if file doesnt exists, then create it
            if(!file.exists()){
                file.createNewFile();
            }
            //true = append file
            FileWriter fw = new FileWriter(file,true);
            BufferedWriter bw = new BufferedWriter(fw);
            bw.write(data);
            bw.close();
            System.out.println("Done");
          } catch(IOException e){
             e.printStackTrace();
          }
       }
     }
   }
}
I am converting XML to other format which is not writing in special character. It shows ?????.
 
     
     
     
    