HaxeFoundation/haxe

FileInput.readLine() fails if last line is empty

Open

#5,418 opened on Jun 29, 2016

 (3 comments) (0 reactions) (0 assignees)Haxe (704 forks)auto 404
Hacktoberfestfeature-filesystem

Repository metrics

Stars
 (6,901 stars)
PR merge metrics
 (PR metrics pending)

Description

The following code fails on all sys targets with an EOF exception, but shouldn't because before invoking readLine the EOF status is tested.

class Test {
    static function main() {
        sys.io.File.saveContent("test.txt", "line1\nline2\n");
        var is = sys.io.File.read("test.txt", false);
        while (!is.eof()) {
            trace(is.readLine());
        }
        is.close();
    }
}

The example works if

        sys.io.File.saveContent("test.txt", "line1\nline2\n");

is replaced by

        sys.io.File.saveContent("test.txt", "line1\nline2");

Contributor guide