【发布时间】:2015-12-18 01:42:13
【问题描述】:
我正在学习 ruby,我想按字节读取文件。 它适用于短文本文件,但当我尝试使用图像或 pdf 文件时它会停止读取字节。
我尝试了不同的实现,但得到了相同的结果。这是我的代码:
destination = File("file2", "w")
source = File.open("file1", "r")
source.each_byte do |byte|
destination.print (byte).chr
end
destination.close
我也试过这个:
destination = File("file2", "w")
source = File.open("file1", "r")
source.each_byte do |byte|
destination.putc(byte)
end
destination.close
我看到0x0D和0x0A对应\r和\n。
当我在irb 中手动测试代码时,我看到 4 个初始元素读取良好,然后忽略第 5 个 (0x0D = \r) 元素,并获得下一个 (0x0A = @ 987654343@).
当我执行source.read(1) 时,我得到正确的值\r 和\n。
为什么.getbyte 忽略0x0D 字节(\r),并说没有更多的字节?
我可以从"\r" 和"\n" 字符串中获取十进制值吗?
【问题讨论】: