truncate(0) 方法会清空文件指针之后的内容,为什么会有null
时间: 2024-04-07 13:28:27 浏览: 301
`truncate(0)` 方法会将文件截断为 0,也就是删除文件中的所有内容。当文件内容被清空后,文件指针仍然指向原来的位置,也就是文件的开头。
此时,如果你尝试读取文件中的内容,将会读取到文件指针位置之后的内容,也就是空内容。在一些编辑器中,空字符通常用 `null` 或者 `NUL`(代表空字符)来表示,因此在 Notepad++ 中你看到的就是 `null`。
需要注意的是,空字符(`\0`)和字符串 `"0"` 是不同的。空字符是 ASCII 码值为 0 的字符,它在文本中不可见,而字符串 `"0"` 则是由字符 `'0'` 组成的字符串,它在文本中是可见的。
因此,在执行 `truncate(0)` 方法后,文件中原来位置的内容不会被真实的数字 0(即空字符 `\0`)替代,而是被清空了。如果你尝试读取文件中的内容,将会读取到空字符(`\0`)或者空字符串(`""`)。
阅读全文