在编写Perl脚本时,我需要在文件的一行中用逗号分隔符写入用户名称。因此,我想知道.txt文件中行的最大大小是否受限制。
文本文件就像其他文件一样,换行符也像其他字符一样,因此只适用通常的文件大小限制(老的文件系统有4GB大小限制,文件必须符合磁盘容量等要求)。
只要你不逐行读取它,读写文本文件时通常不会遇到任何问题——否则可能会出现内存耗尽或缓冲区溢出等问题。这可能会发生在任何文本编辑器或文本处理程序中(如sed或awk),因为在这些程序中,与操作系统内核不同的是,每行都很重要。
建议将每个用户放在一行上,因为这样更自然易读,并且在使用外部程序处理文件时,错误率更低。
你唯一需要担心的是你能够创建和读取的文件大小。
计算机并不知道什么是行,这只是文件中字节的解释。我们决定某些字符序列标志着行的结束,然后告诉程序从文件中获取内容直到遇到该序列为止。对我们来说,那就是一行。
例如,你可以定义一个以逗号结尾的文本文件行:
$/ = ',';
while( <DATA> )
{
chomp;
print "Line is: $_\n";
}
__DATA__
a,b,c,d,e,f,g
__DATA__
下面只有一行,但这是因为我们习惯了书籍的格式。计算机不读书籍。相反,这个程序认为逗号之间的所有内容都是一行:Line is: a
Line is: b
Line is: c
Line is: d
Line is: e
Line is: f
Line is: g
除了您的文件系统,最可能是2TB或其他大小限制外,没有大小限制。
不,除非您达到任何文件大小限制,否则没有这样的限制。
我在Kwrite中遇到了一个大约1M字符长的行的问题。
虽然理论上没有限制,但如果您要处理文件,您必须将该行进行换行以适应显示宽度。每次编辑时,都会执行许多计算,可能涉及交换内存。这使得编辑很笨拙。长行可能非常不方便。
文件大小取决于您操作系统的文件系统。工具本身没有限制(至少我到目前为止还没有见过...)