Search code examples
.netarraysline

.NET File.WriteAllLines leaves empty line at the end of file


When I'm saving content of the String[] array with System.IO.File.WriteAllLines, at the end of a file is always left a blank line. For example:

System.IO.File.WriteAllLines(Application.dataPath + "/test.txt",["a", "b", "c"]);

Produces file (without underscore):

a
b
c
_

There was already such topic: Empty line in .Net File.WriteAllLines, is a bug? , but autor said that "I think there are something wrong with my data,that's my problem but not the WritAllLines" and it was closed as "too localized" (?!?).

It's a bug? How can I easily get rid of it (for now I'm just ignoring it when reading file again)?


Solution

  • The WriteAllLines method will write out each line in your array followed by a line break. This means that you will always get this "empty line" in your file.

    The point made in the post you linked is that when running ReadAllLines that considers a line to be characters terminated by a line break. So when you use the read method on the file you've just written you should get the exact same lines back.

    If you are reading the file in a different way then you will have to deal with linebreaks yourself.

    Essentially what you are seeing is Expected Behaviour.