八进制,,一种以8为基数的计数法,采用0,1,2,3,4,5,6,7八个数字,逢八进1。一些编程语言中常常以数字0开始表明该数字是八进制。八进制的数和二进制数可以按位对应(八进制一位对应二进制三位),因此常应用在计算机语言中。
二进制与八进制的互相转换和二进制与十六进制的转换类似,区别在于需要操作的是三位一组而不是四位。表2-2列出了二进制与八进制的等效表示。
为了把八进制数换算为二进制,将每一个八进制数字替换成表2-2中对应的三位。例如,八进制123换算成二进制的结果就是001010011:
字符串 含义\a 替换成Bell声所对应的符号
\nnn nnn表示一个八进制数值,替换成该八进制所对应的字符
\b 退格符,替换成退格键所对应的字符
\xnn xnn表示一个十六进制数,替换成该十六进制数所对应的字符
\e 替换成Escape键对应的字符
\cx替换成Ctrl+X组合键对应的字符,其中x可以是任意键对应的字符
\C-x 替换成Ctrl+X组合键对应的字符,其中x可以是任意键对应的字符
\n 换行符,替换成一个空行
\M-x 替换成Alt+X组合键对应的字符,其中x可以是任意键对应的字符
\r 回车符,替换成一个回车
\M-\C-x 替换成Ctrl+Alt+X组合键对应的字符,其中x可以是任意键对应的字符
\s 空白符,替换成一个空白字符
\t 替换成一个Tab键所对应的字符
\v 替换成一个垂直Tab键所对应的字符
#{expr}替换成变量或者表达式expr所对应的值
类方法File.new,它是File对象的一个实例,将它打开文件。第一个参数自然是文件名。可选的第二个参数被称为模式字符串,它告诉如何打开文件(用于读,写或其它)。模式字符串不做任何事情,它只是个许可。缺省值"r"用于读。这儿是个例子:
file1 = File.new("one")
# Open for reading
file2 = File.new("two", "w")
# Open for writing
new的另一种形式接受三个参数。在这种情况,第二个参数指出文件的原始许可(通常是八进制常量),第三个参数是一组Ored标志。标志是个常量如File:CREAT(当打开时,如果文件不存在则创建它)和File:RDONLY(以只读方式打开文件)。这种形式很少使用。这儿是个例子:
file = File.new("three", 0755, File::CREAT|File::WRONLY)
出于对操作系统或运行时环境的礼貌,总是要关闭你打开的文件。在用于写而打开文件情况下,更应如此才能避免丢失数据。不出意外,close方法用于做到点:
out = File.new("captains.log", "w")
# 必须的步骤...
out.close
这儿是open方法,它简单形式内,它不过是new的同义字,像这样:
trans = File.open("transactions","w")
但是,open可以接受块;这个形式更有趣。当指定块时,打开的文件会被做为参数传递给块。在块的作用域内文件一直保持打开状态,在退出块时自动关闭。这儿是个例子:
File.open("somefile","w") do |file|
file.puts "Line 1"
file.puts "Line 2"
file.puts "Third and final line"
end
# The file is now closed
当我们结束对文件的操作时,很明显这是关闭文件的优雅方式。此外,管理文件的代码在视觉上是个单元。