W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
在上面的所有例子中,我們都使用二進(jìn)制數(shù)來(lái)寫(xiě)入文件.在"二進(jìn)制數(shù),字符串和字符列表"那一章中,我們提到了字符串僅僅是字節(jié)而字符列表是代碼點(diǎn)組成的列表.
IO
和File
模塊中函數(shù)允許將列表作為參數(shù).而且,他們也支持由列表,整數(shù)和二進(jìn)制數(shù)混合而成的列表:
iex> IO.puts 'hello world'
hello world
:ok
iex> IO.puts ['hello', ?\s, "world"]
hello world
:ok
然而,需要注意的是,一個(gè)列表有可能是一串字節(jié)或者一串字符,而這取決于IO設(shè)備的編碼.如果文件打開(kāi)時(shí)沒(méi)有指定編碼,那么就是以生模式打開(kāi),而且必須使用IO
模塊中以bin*
開(kāi)頭的函數(shù).這些函數(shù)需要一個(gè)iodata
作為參數(shù);它們需要一個(gè)代表字節(jié)和二進(jìn)制數(shù)的整數(shù)列表.
另一方面,能夠使用IO
模塊中的其它函數(shù)處理:stdio
和以:utf8
編碼打開(kāi)的文件.這些函數(shù)需要一個(gè)char_data
作為參數(shù),也就是一個(gè)字符或字符串的列表.
如果你想把一個(gè)列表傳遞給這些函數(shù),你唯一要關(guān)心的就是這些微妙的差別.二進(jìn)制數(shù)已經(jīng)由字節(jié)來(lái)表示,因此,它們的屬性是"生的".
關(guān)于IO設(shè)備和IO相關(guān)函數(shù)的介紹到此結(jié)束.我們已經(jīng)學(xué)習(xí)了四個(gè)Elixir模塊--IO
,File
,Path
和StringIO
,也學(xué)習(xí)了虛擬機(jī)是如何使用進(jìn)程來(lái)從底層支持IO機(jī)制的,以及在IO操作中如何使用chardata
和iodata
.
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: