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

时间:2017-04-16 10:50:03

标签: java file filereader

我有这段代码......

Note: this extension is not meaningful for TLS versions prior to 1.2.
   Clients MUST NOT offer it if they are offering prior versions.
   However, even if clients do offer it, the rules specified in [TLSEXT]
   require servers to ignore extensions they do not understand.

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

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());
}

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

1 个答案:

答案 0 :(得分:0)

(代表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