对判断读取文件结束的一点心得
2014-04-01 12:42
204 查看
之前遇到过这一个问题,用了先读取再判断是否到文件结尾,来判断读取的内容是否有效。但是当时只是大概地了解了一下,并没有很好地去理解。
前两天,应用的时候都没有想起这个处理方式,后来发现文件读取有问题。找了相关资料,再加上看了一个提问(如何判断读取文件结束)中各位高手的见解。终于有了点眉目。
对于其他,上面那些高手说了很多,我也不多说。根据高手们的见解,再结合我自己一情况,读到文件结尾(测试的时候我们自己知道)有两种情况。简单地说,我是按行来读取文件的,文件结尾有两种情况。1) 最后一行没有敲回车;2) 最后一行内容结束敲了一个回车。
现在来分析,第一种情况:读最后一行的时候,读到文件结束,读入内容,并作了文件结束标志。这是读取的内容时有的,eof判断是已经到文件结尾了。第二种情况:读最后一行,这里是遇到回车,读取结束,读入内容,但是,这时候没有标志文件结束,eof判断的时候得到的结果就是文件没有结束,但内容已经读取完了,在下一次读取的时候,没有读到内容,而且标志文件结束。
这种类似的问题还会出现在读取整数等其他情况下。
所以,先读再eof判断,在第一种情况下会使最后一行的数据丢失。实际应该先eof判断,再在读取数据的时候进行判断,可以达到想要的结果。
前两天,应用的时候都没有想起这个处理方式,后来发现文件读取有问题。找了相关资料,再加上看了一个提问(如何判断读取文件结束)中各位高手的见解。终于有了点眉目。
对于其他,上面那些高手说了很多,我也不多说。根据高手们的见解,再结合我自己一情况,读到文件结尾(测试的时候我们自己知道)有两种情况。简单地说,我是按行来读取文件的,文件结尾有两种情况。1) 最后一行没有敲回车;2) 最后一行内容结束敲了一个回车。
现在来分析,第一种情况:读最后一行的时候,读到文件结束,读入内容,并作了文件结束标志。这是读取的内容时有的,eof判断是已经到文件结尾了。第二种情况:读最后一行,这里是遇到回车,读取结束,读入内容,但是,这时候没有标志文件结束,eof判断的时候得到的结果就是文件没有结束,但内容已经读取完了,在下一次读取的时候,没有读到内容,而且标志文件结束。
这种类似的问题还会出现在读取整数等其他情况下。
所以,先读再eof判断,在第一种情况下会使最后一行的数据丢失。实际应该先eof判断,再在读取数据的时候进行判断,可以达到想要的结果。
相关文章推荐
- gets与scanf如何判断读取文件结束
- C# 读取二进制文件 判断文件结束的方法
- ObjectOuputStream判断文件读取结束
- C/C++中读取文件判断是否读取结束
- python中readline判断文件读取结束的方法
- python中readline判断文件读取结束的方法
- IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题
- 使用RFileReadStream读取文件时,判断文件结束的方法
- Delphi判断文件是否正在被使用(CreateFile也可以只是为了读取数据,而不是创建)
- iphone 判断文件是否存在,如果不存在就从Bundle里面读取
- 关于从网络Url中下载文件自己的一点心得
- 关于导入.xlsx和.xls文件的一点心得
- 文件上传的一点心得
- fread函数读取文件提前结束
- 关于postgis导入导出shp文件数据的一点心得,可以复制正文到记事本并保存成bat文件
- 读取二进制文件判断是否文件尾
- DICOM文件中读取对齐方式以及判断元素是否为显示VR还是隐式VR的方法
- 如何从本地磁盘中读取一个文件,进行判断每个字符有多少个
- 用JAVA在读取EXCEL文件时如何判断列隐藏
- shell 判断文件是否存在 并且 循环读取