2010-11-19 90 views
0

嗨大家可以告诉我这个问题的答案吗? 我创建了一个简单的txt文件。它包含只有两个单词和单词是你好单词根据我研究计算机使用ascii代码将文本存储在磁盘或内存中。在ascii代码中,每个字母或符号用一个字节表示或用简单的单词表示一个字节用于存储一个符号。 现在的问题是,当我看到文件的大小时,它显示11个字节我了解9个字节的单词一个字节的空间使总数为10,然后为什么它显示11个字节的大小。我尝试了不同的东西,如改变文件的名称用尽可能最短的名字或最长的名字来保存,但它并没有改变总的存储空间 所以任何机构都可以解释它为什么会发生?我试过这个窗口或者Linux(Ubuntu.centos)系统的结果是一样的。电脑基础问题

+0

不想被光顾,但你确定它说“你好词”而不是“你好世界”? – charisis 2010-11-19 07:37:05

回答

2

如果你想看到文件的内容,你可以使用linux下的“od”命令来执行它的八进制转储。很可能你会看到一个CR(回车)和一个LN(换行)。 文件的名称与他的大小无关。

路易斯

3
pax> echo hello word >outfile.txt 

pax> ls -al outfile.txt 
-rw-r--r-- 1 pax pax 11 2010-11-19 15:34 outfile.txt 

pax> od -xcb outfile.txt 
0000000 6568 6c6c 206f 6f77 6472 000a 
      h e l l o  w o r d \n 
     150 145 154 154 157 040 167 157 162 144 012 

pax> hd outfile.txt 
00000000 68 65 6c 6c 6f 20 77 6f 72 64 0a     |hello word.| 
0000000b 

按照上面,你存储"hello word"换行符。总共有11个字符。如果您想换行,你可以使用类似的echo-n选项(不添加新行):

pax> echo -n hello word >outfile.txt 

pax> ls -al outfile.txt 
-rw-r--r-- 1 pax pax 10 2010-11-19 15:36 outfile.txt 

pax> od -xcb outfile.txt 
0000000 6568 6c6c 206f 6f77 6472 
      h e l l o  w o r d 
     150 145 154 154 157 040 167 157 162 144 

pax> hd outfile.txt 
00000000 68 65 6c 6c 6f 20 77 6f 72 64     |hello word| 
0000000a 
+0

+1样本输出 – Zeke 2010-11-19 07:38:38

+0

@paxdiablo这是一个很好的命令知道!我还看到有人说光盘上的文件/字符串不是空终止的(这会占用额外的字节)?这是真的? – ubiquibacon 2010-11-19 07:39:48

+0

'hd'也默认产生清除输出(十六进制,然后是可读的字符)。 – 2010-11-19 07:41:58

0

你有没有在文本文件中的新行(\n) ?仅仅因为这个角色不能被看到并不意味着它不在那里。