日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
分享Ruby操作二進制文件技巧

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

成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)由有經(jīng)驗的網(wǎng)站設(shè)計師、開發(fā)人員和項目經(jīng)理組成的專業(yè)建站團隊,負(fù)責(zé)網(wǎng)站視覺設(shè)計、用戶體驗優(yōu)化、交互設(shè)計和前端開發(fā)等方面的工作,以確保網(wǎng)站外觀精美、成都網(wǎng)站設(shè)計、成都做網(wǎng)站易于使用并且具有良好的響應(yīng)性。

可是在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操作二進制文件非常有用.


網(wǎng)頁名稱:分享Ruby操作二進制文件技巧
文章地址:http://m.5511xx.com/article/cophjdi.html