2

I have a function for writing String to a text file. It works, but for some reason (encoding?) it adds some weird data to the beginning of the file.

Here is the relevant code:

    var file:File =  new File(OUTPUT_FILE_NAME);
    var stream:FileStream = new FileStream();
    stream.open(file, FileMode.WRITE);
    stream.writeUTF("Hello World!");
    stream.close();

When I open the file in Notepad++, it shows this:enter image description here

What am I doing wrong?

user1566515
  • 1,637
  • 4
  • 17
  • 25

2 Answers2

7

use this stream.writeUTFBytes("Hello World"); instead of stream.writeUTF("Hello World!");

if we use writeUTF then it write prefix the string with a 16-bit length word. if you use writeUTFBytes then it omit this prefix Length String.

JK Patel
  • 858
  • 8
  • 22
3

writeUTF prepends the length of the string before writing it to file. Use writeUTFBytes if you want to write only the string.

Pranav Hosangadi
  • 23,755
  • 7
  • 44
  • 70