回答
除了在文本編輯器中移動到文件末尾時它是更好的光標位置這一事實。
在文件末尾添加一個換行符可以簡單地檢查文件是否被截斷。
該文件可能被截斷,你永遠不會知道 – 2010-02-18 10:57:41
第一部分是正確的,第二部分是不正確的。 – 2017-06-29 10:52:23
文件末尾會出現空行,以便輸入流的標準讀取知道何時終止讀取,通常會返回EOF以指示您已到達結尾。大多數語言都可以處理EOF標記。因爲這個原因,在DOS下,EOF標記是F6鍵或Ctrl-Z,對於nix系統,它是Ctrl-D。
大多數(如果不是全部的話)實際上會直接讀取EOF標記,以便運行時庫從輸入讀取的功能知道何時停止讀取。當您打開追加模式的流時,它將擦除EOF標記並將其寫過去,直到明確調用關閉時,它將在該點處插入EOF標記。
老工具正在等待一個空行,然後是EOF標記。如今,工具可以處理空行並忽略它。
^D不是「EOF標記」。按^ D導致shell關閉前臺進程組正在讀取的管道的寫入端,以便從該管道讀取的數據返回EOF。沒有「EOF標記」。 – 2010-02-18 11:13:49
@William Pursell你錯誤地將* NIX和Windows混爲一談。傳統的Windows/DOS絕對使用通常在大多數文件末尾嵌入的EOF標記(26,0x1a)作爲與古代CP/M(1983年以後使用CP/M的對象)的兼容性的保留。其他「fun」:'\ r \ n'而不是'\ n',DOS調用使用ASCIIZ和ASCII $混合。更糟的是,後來在Windows上通常會在大多數文本文件的開頭插入一個Unicode字節順序標記(BOM)。可愛的「獨特性」。 – Barry 2017-10-18 05:19:05
有些語言根據輸入行定義它們的輸入文件,其中每個輸入行是一系列由回車符終止的字符。如果他們的語法如此定義,那麼文件的最後一個有效行必須以回車結束。
此外,當您修改文件並在文件末尾添加一些代碼時 - diff(至少在標準配置中是git diff)會顯示您更改了最後一行,而您實際完成的唯一一件事 - 添加了一個換行符號。所以CVS報告變得不太方便。
如果您嘗試將兩個文本文件連接在一起,如果第一個以換行符結尾,則會更加快樂。
的參數也可以爲更清潔的diff如果你追加到該文件遵循同樣的推理Why does Python allow a trailing comma in list?
- 1. 爲什麼XML元素沒有附加在文件的末尾
- 2. 刪除文件末尾的空行
- 3. 文件創建總是在Groovy末尾添加空行
- 4. Flume在HDFS輸出文件末尾創建空行
- 5. 防止在平面文件目標末尾創建空行
- 6. 「警告:文件末尾沒有新行」的含義是什麼?
- 7. 爲什麼SMTP郵件正文末尾有'='?
- 8. XMLStreamReader - 文件末尾會發生什麼?
- 9. 爲什麼jQuery建議在<body>的末尾放置<script>標籤?
- 10. 在CSV文件末尾添加空列
- 11. 爲什麼ASP.net在我的ASHX文件的輸出末尾寫入空格?
- 12. C++處理文件空行在文件末尾
- 13. emacs爲什麼我在我的文件名末尾有散列,即#test.c#
- 14. 在文件的末尾寫入新行
- 15. 忽略文件末尾的空格
- 16. 文件::尾::選擇什麼@pending行爲
- 17. 在文件末尾寫入
- 18. 爲什麼在這個HtmlNodeCollection的末尾總會有一個空字符串?
- 19. Bash:在行末找到尾隨空格的文件
- 20. .NET File.WriteAllLines在文件末尾留下空行
- 21. 如何停止在csv文件末尾寫入空行 - pandas
- 22. Excel在輸出文件末尾添加空行
- 23. 將項目寫入單獨文件行,並在末尾沒有空行
- 24. 爲什麼PHP_EOL在每行的末尾寫入\ r \ n
- 25. 爲什麼SQL忽略字符串末尾的額外空格?
- 26. 在\ n末尾刪除空行\ n
- 27. 爲什麼我在變量的末尾有隨機字符串?
- 28. 爲什麼有些人在變量的末尾附加f?
- 29. Python - 刪除文件末尾的空行文本
- 30. 刪除文本文件末尾的空行
一些工具失敗,如果該文件不以回車結束工作進行。這不同於最後有一個空行(這將是2個換行符)。 – 2010-02-18 12:02:09
文本編輯器Gedit和Nano(據報道Vim)會爲您保存的任何文檔添加一個空行。 – 2012-09-14 13:48:20
你的意思是空行('\ n \ n')還是新行'\ n'? – 2014-09-13 20:10:41