我正在为编程班的初级学生准备一份关于文件的讲座。我想详细说明的一点是文件的良好实践。
在使用任何编程语言的文件时要记住什么?
答案 0 :(得分:4)
可以认为文件包含一组记录,每个记录固定长度或以分隔符结尾。
文件通常针对顺序访问进行优化,而不是随机访问。将数据插入文件的中间很困难,并且线性处理文件(如盒式磁带)通常比随机处理文件(如“shuffle”模式下的CD)更快。
随机访问文件通常包含固定长度的记录,其中大多数记录包含空格,使其大于顺序访问文件。
档案是气质和不可预测的生物。他们可以更改长度,消失,更改访问权限,等。在访问之间,所以验证您的操作,并检查返回代码。
如果您从头开始阅读(尾部)并写到结尾(头部),文件可用作缓冲区。
冲洗你的缓冲区!
由于没有人说出它的不良品味:这应该让你的学生掌握这个主题。
答案 1 :(得分:1)
答案 2 :(得分:1)
我发现初级程序员经常缺乏直觉或者学习了关于访问文件速度的错误教训。
非常新的程序员认为文件非常快,需要帮助理解为什么从无缓冲文件中一次读取一个字节是个坏主意。同样,访问目录信息可能非常慢,如果可能,应该进行缓存。
不幸的是,一些经验丰富的程序员会学到错误的教训,并认为一切都需要缓存在RAM中,否则会太慢。现代操作系统具有非常复杂的磁盘缓存,因此第二次访问文件的相同部分可能会快得多。
最后,交互式程序应该在另一个线程中执行所有文件操作,因此当磁盘忙或者远程卷暂时不可用时,您的应用程序不会慢慢爬行或停止工作。
答案 3 :(得分:0)
记得在完成它们后关闭它们。
答案 4 :(得分:0)
与任何其他输入一样,文件可能会增加安全风险。另外,它可能是格式错误的,要么是因为它是由过时的应用程序创建的,要么是因为最终用户试图自己修改它们。
要么完全忽略这样的文件,要么尽可能多地丢弃其余文件。
答案 5 :(得分:0)
总是关闭文件并在完成后处理所有资源。
对二进制文件使用读取二进制文件并读取文本文件。 (不记得我帮助那些代码没有读取整个文件的人的次数,因为他们正在读取带有文本结构的二进制文件,而且文件恰好在中间有一个^ Z.) p>
答案 6 :(得分:0)
执行:
不要:
答案 7 :(得分:0)
如果你正在编写服务器端或并发代码,请密切注意文件锁定:太少,你会有太多的数据损坏,你的应用程序将会死锁。
答案 8 :(得分:0)
Vista在程序目录中有新的权限,因此创建文件的程序在vista上安装时可能会出现问题(很容易修复,但烦恼都是这样)。
答案 9 :(得分:0)