2014-11-13 70 views
1

我試過尋找最佳實踐來將標準txt文件轉換爲二進制文件,但我還是不太瞭解它,並且想知道是否有人可以更好地解釋它。所以可以說我有my_file.txt,並且想將它轉換爲my_file.bin。一次轉換整個文件的最佳做法是什麼?我可以將整個文件寫入一個新的.bin文件嗎?或者我必須迭代文件並逐行轉換等等?如何將txt文件轉換爲ruby中的二進制文件

我已經試過的東西,如

old_text = File.open('my_file.txt').read 
bin_file = File.new("my_file.bin","w+") # I understand w+ may not be the correct option 
bin_file.puts(old_text) 
bin_file.close 

但嘗試讀取bin_file沒事的時候返回。有沒有更好的做法來完成這一點?

+1

什麼你的意思是「二進制文件」? – matt

回答

2

好消息! Ruby的字符串maniupulation已經得到了你這裏介紹:

"some text".unpack('b*') 

您可以將一個完整的文件轉換成二進制通過http://ruby-doc.org/core-2.1.4/String.html#M000760

你可以做這樣的事情更多的是:

old_text = File.open('my_file.txt').read 
bin_file = File.new("my_file.bin","w+") # I understand w+ may not be the correct option 
bin_file.puts(old_text.unpack('b*')) 
bin_file.close 
+0

哦完美!很酷。如果我想一行一行閱讀,那麼這項工作是否也會如此?只是爲每一行調用它,它會將其寫入文件的權利? – Luminusss

+1

當然會。只需修改您的代碼,逐行循環遍歷文件(將二進制文件存儲爲像數組或類似文件),然後將循環中的二進制文件轉儲到新文件中。 –

相關問題