成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

分享Ruby操作二進制文件技巧

開發(fā) 開發(fā)工具
Ruby操作二進制文件對于一個經(jīng)驗豐富的編程人員來說是非常方便易學(xué)的一個操作方法。不過在windows下的Ruby操作二進制文件方法卻有些不同。

Ruby語言中,利用字符串保存二進制文件已經(jīng)是一個非常方便的步驟了。那么具體的操作方法優(yōu)勢怎樣的呢?下面我們就一起來看看Ruby操作二進制文件相關(guān)技巧介紹。#t#

可是在windows下是例外,在他下面,Ruby操作二進制文件和文本文件的不同是,在二進制mode下,結(jié)束行不能被轉(zhuǎn)義為一個單獨的換行,而是被保存為一個回車換行對.

另外的不同是,在文本模式下 control-Z被作為文件的結(jié)束:

 

  1. # Create a file (in binary mode)   
  2. File.open("myfile","wb")
     {|f| f.syswrite("12345\0326789\r") }   
  3. # Above note the embedded 
    octal 032 (^Z)   
  4. # Read it as binary   
  5. str = nil   
  6.    
  7. File.open("myfile","rb") 
    {|f| str = f.sysread(15) }   
  8. puts str.size# 11   
  9. # Read it as text   
  10. str = nil   
  11. File.open("myfile","r") 
    {|f| str = f.sysread(15) }   
  12. puts str.size# 5 

這邊注意,這些代碼都是在windows下才會打印出后面的結(jié)果,如果是在linux兩處都會打印出11.

再看下面的Ruby操作二進制文件代碼:

 

  1. # Input file contains a 
    single line: Line 1.   
  2. file = File.open("data")   
  3. line = file.readline # 
    "Line 1.\n"   
  4. puts "#{line.size} characters." 
    # 8 characters   
  5. file.close   
  6. file = File.open("data","rb")   
  7. line = file.readline # "Line 1.\r\n"   
  8. puts "#{line.size} characters."
     # 9 characters 
    二進制模式的結(jié)尾是一個回車換行對.   
  9. file.close 

binmode方法能夠轉(zhuǎn)換當(dāng)前的流為二進制模式,這邊要注意的是,一旦切換過去,就不能切換回來了:

 

  1. file = File.open("data")   
  2. file.binmode   
  3. line = file.readline 
    # "Line 1.\r\n"   
  4. puts "#{line.size} 
    characters." # 9 characters   
  5. file.close 

如果你想使用更底層的輸入輸出,那你可以選擇sysread和syswrite方法,他們接受一定數(shù)量的字節(jié)作為參數(shù) .

 

  1. input = File.new
    ("myfile",'a+')   
  2. output = File.new
    ("outfile",'a+')   
  3. instr = input.sysread(10);   
  4. puts instr   
  5. bytes = output.syswrite
    ("This is a test.") 

如果文件指針已經(jīng)到達(dá)文件的結(jié)尾時,sysread方法將會拋出一個異常.

這邊要注意 Array 的pack和string的unpack方法,對于Ruby操作二進制文件非常有用.

責(zé)任編輯:曹凱 來源: ddvip.com
相關(guān)推薦

2009-12-16 11:04:51

Ruby操作文件權(quán)限

2009-11-02 11:27:42

VB.NET二進制文件

2017-04-11 10:48:53

JS二進制

2009-08-12 18:06:53

C#讀取二進制文件

2009-12-10 09:24:50

PHP函數(shù)fwrite

2023-09-18 23:50:25

二進制文件裁剪Layout

2013-04-28 15:37:35

JBoss

2024-02-01 09:04:12

2009-02-27 09:37:33

Google二進制代碼

2018-10-22 14:37:16

二進制數(shù)據(jù)存儲

2022-10-31 08:02:42

二進制計算乘法

2020-05-22 18:00:26

Go二進制文件編程語言

2023-12-26 15:10:00

處理二進制文件

2009-12-16 10:10:16

Ruby打開關(guān)閉文件

2009-12-15 10:23:23

Ruby應(yīng)用技巧

2010-06-09 13:02:29

MySQL啟用二進制日

2010-10-13 15:45:23

MySQL二進制日志

2022-07-26 13:00:01

安全符號源代碼

2024-10-30 09:50:51

WebGo語言

2017-12-21 10:52:52

nginx日志還原
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 五月婷婷在线播放 | 婷婷中文在线 | 一区二区免费高清视频 | 久久久久久久久淑女av国产精品 | 羞羞网站免费观看 | 久久久久亚洲 | 成人在线观看免费爱爱 | av日韩在线播放 | 精品免费在线 | 欧美一区二区三区视频在线观看 | 国产黄色av电影 | 毛片久久久 | 9久久| 日韩欧美国产精品一区 | 毛片电影 | 国精品一区二区 | 91一区二区三区 | 欧美日韩精品中文字幕 | 日韩欧美一级片 | 先锋av资源在线 | 久久精品手机视频 | 国产欧美日韩综合精品一区二区 | 精品久久香蕉国产线看观看亚洲 | 成人日b视频 | 国产成人精品免费视频大全最热 | 在线小视频 | 亚洲精品久久久久久久久久久久久 | 精品久久久久国产免费第一页 | 欧美成人精品一区 | 欧美日韩综合一区 | 国产精品久久久久久福利一牛影视 | 久久久久久亚洲精品不卡 | 国产伦精品一区二区三区精品视频 | 成人毛片视频免费 | 成人精品一区二区三区四区 | 黄色大片视频 | 涩爱av一区二区三区 | 五月激情婷婷在线 | aaa天堂| 中文字幕免费 | 欧美一级电影免费观看 |