尽管 Java 中的文件 none,FileReader 始终至少读取一个换行符

FileReader always read at least one newline despite none in file in Java

我有这个代码...

try{
    FileReader fread = new FileReader(new File("testfile"));
    int y = 0;
    while (fread.ready()){
        char path = (char)fread.read();
        System.out.println(path);
        if (path == '\n'){
            y++;
        }
    }
    System.out.println("Newlines: " + y);
}
catch (Exception e){
    System.out.println(e.getMessage());
}

...以及一个名为 testfile 的文件,其中包含以下信息...

ABC

...当我 运行 程序打印出文件包含一个换行符时。这是为什么?阅读 Oracle 文档后,我根本找不到原因。我的问题很容易通过从 y 中减去 1 来解决,但我对此并不满意。这个问题让我发疯,因为我不知道换行符从哪里来。

(代表OP发表).

我的编辑器(和其他几个编辑器)在文件中的 eof 之后添加了一个换行符。以下页面列出了针对不同编辑器的不同解决方案:

https://askubuntu.com/questions/13317/how-to-stop-gedit-gvim-vim-nano-from-adding-end-of-file-newline-char

Gedit adds line at end of file