string库进阶
一、读写文件
1、读文件 51Testing软件测试网ZA){z~p
d
.\ J4R
Gxi!`
oU0str = string.load(filename);51Testing软件测试网m/WZ|eGi!p
str = string.load(filename,tag); 51Testing软件测试网Yp1y5L8B9\+c
51Testing软件测试网:s&j%Sm;lO%p
第一个字符串参数指定文件名,
+v tf,r#v$cG&i0第二个字符串参数指定读文件方式(类似io.open的最后一个参数),可省略(默认为"rb");
I[5lN/@ P}._!x0成功返回文件内容,失败返回nil。
$_tO|a7u&T[^0
d{!XE-Nl$H0可选的tag参数如下51Testing软件测试网T
j4dy3Kb*j)?9zM
51Testing软件测试网8}YR8nR:u
51Testing软件测试网KY$U |:MIOQC$Q
可以通过以下字符标志控制读文件方式。
,K9d]s%Q0---------------------------
xM5v!h9_/N0r+ 打开文件,如果不存在则创建51Testing软件测试网4]@1U Vj&@/O^
r 打开文字文件只读,等于rt
dWpM4V Z |"?9^0rb 以二进制方式打开文件只读
J"\+sR!D-E3CH ?0rt 以文本方式打开文件只读。
9t&B'X*K2V|0
,I$s9bf&j&u'Spt0b表示以二进制方式读文件,t表示以文本方式读文件.51Testing软件测试网-j c$|0H-M Q0e~(w
如果指定t模式,会自动将回车换行符号\r\n替换为单一的换行符号\n
,K9d]s%Q0---------------------------
xM5v!h9_/N0r+ 打开文件,如果不存在则创建51Testing软件测试网4]@1U Vj&@/O^
r 打开文字文件只读,等于rt
dWpM4V Z |"?9^0rb 以二进制方式打开文件只读
J"\+sR!D-E3CH ?0rt 以文本方式打开文件只读。
9t&B'X*K2V|0
,I$s9bf&j&u'Spt0b表示以二进制方式读文件,t表示以文本方式读文件.51Testing软件测试网-j c$|0H-M Q0e~(w
如果指定t模式,会自动将回车换行符号\r\n替换为单一的换行符号\n
例:51Testing软件测试网}rG#f9@7gV$l
str = string.load("c:\\test.txt","rb");51Testing软件测试网#@9jeIwM2@-s
@
g
cb.rc"RDuo9a0也可以省略第二个参数,默认为rb。例:
D@o fJc b0str = string.load("c:\\test.txt");
您也可以自动捕获打开文件时遇到的错误:51Testing软件测试网 {!y!Y.?B9~
--您是否想自动取得string.load为什么会出错呢?使用code,msg = win.lastError() 即可。51Testing软件测试网_7Z"z\r7@v[
--您可能会想到,是否可以将 win.lastError()作为assert的第二个参数自动取得系统提供的错误信息?51Testing软件测试网L|fa"g~ni"z
--但是我们遇到一个参题, 我们必须取win.lastError()的第二个返回值,这时候就要用到select函数了
P-m6eZ^({"Cd @0str = assert( string.load("c:\\no-file.txt") ,select( 2, win.lastError() ) );
&\%U9] W#Skk@ ^0--win.lastError()的所有返回值作为参数传递给select 等于 select(2,code,msg)
/I~ }.Pw1I0--select从第二个参数向后数,找到第一个参数指定的参数并返回51Testing软件测试网4QM3@L:An*FCg"K
--您可能会想到,是否可以将 win.lastError()作为assert的第二个参数自动取得系统提供的错误信息?51Testing软件测试网L|fa"g~ni"z
--但是我们遇到一个参题, 我们必须取win.lastError()的第二个返回值,这时候就要用到select函数了
P-m6eZ^({"Cd @0str = assert( string.load("c:\\no-file.txt") ,select( 2, win.lastError() ) );
&\%U9] W#Skk@ ^0--win.lastError()的所有返回值作为参数传递给select 等于 select(2,code,msg)
/I~ }.Pw1I0--select从第二个参数向后数,找到第一个参数指定的参数并返回51Testing软件测试网4QM3@L:An*FCg"K
2、写文件
Rm-}K+G6K z051Testing软件测试网!Nk+AZ#l6{:M(y$[
Eq-W,o
string.save(str,filename)