Example

public static final void main(String[] args) {
try {
String str = "\uceba"; //UTF-16BE //$NON-NLS-1$
FileOutputStream fileOutput = new FileOutputStream("file1"); //UTF-16BE //$NON-NLS-1$
OutputStreamWriter writer = new OutputStreamWriter(fileOutput);
writer.write(str);
}catch (Exception e){
e.printStackTrace();
}
}
Solução
Utilize os seguintes métodos para evitar perda de dados
  • java.io.OutputStreamWriter.OutputStreamWriter (java.io.OuputStream, java.lang.String)
  • java.io.OutputStreamWriter.OutputStreamWriter (java.io.OutputStream, Charset)
  • java.io.OutputStreamWriter.OutputStreamWriter (java.io.OutputStream, CharsetDecoder)

public static final void main(String[] args) {
String str = "\uceba"; //str is a UTF-16BE //$NON-NLS-1$
try {
FileOutputStream fileOutput = new FileOutputStream("test.txt"); //$NON-NLS-1$
OutputStreamWriter writer = new OutputStreamWriter(fileOutput,
java.nio.charset.Charset.forName("UTF-16BE").newEncoder()); //$NON-NLS-1$
writer.write(str);
writer.flush();
writer.close();
} catch (java.io.FileNotFoundException e1) {
System.out.println(e1.toString());
} catch (java.io.IOException e2) {
System.out.println(e2.toString());
}
}