作者:LiangChao | 来源:互联网 | 2018-05-25 01:45
代码如下:{代码...}结果如下:数据已成功写入指定文件但是echofgets()却是空的字符串修改代码,去掉初始方法中的参数'w',如下:{代码...}结果如下:数据写入失败但是echofgets()可以获取之前写入的数...
代码如下:
$file = new \SplFileObject($path->get(), 'w');
$file->fwrite('UUUaaaaOA323423482739S');
$file->rewind();
echo $file->fgets();
exit;
结果如下:
- 数据已成功写入指定文件
- 但是echo fgets()却是空的字符串
修改代码,去掉初始方法中的参数'w',如下:
$file = new \SplFileObject($path->get());
$file->fwrite('----------UUUaaaaOA323423482739S');
$file->rewind();
echo $file->fgets();
exit;
结果如下:
- 数据写入失败
- 但是echo fgets()可以获取之前写入的数据
请问SplFileObject不能读写同时进行嘛?
回复内容:
代码如下:
$file = new \SplFileObject($path->get(), 'w');
$file->fwrite('UUUaaaaOA323423482739S');
$file->rewind();
echo $file->fgets();
exit;
结果如下:
- 数据已成功写入指定文件
- 但是echo fgets()却是空的字符串
修改代码,去掉初始方法中的参数'w',如下:
$file = new \SplFileObject($path->get());
$file->fwrite('----------UUUaaaaOA323423482739S');
$file->rewind();
echo $file->fgets();
exit;
结果如下:
- 数据写入失败
- 但是echo fgets()可以获取之前写入的数据
请问SplFileObject不能读写同时进行嘛?
我懂了,这个和文件打开模式有关系,
- 打开模式为w,那么就是只写,不读
- 打开模式为r,那么就是只读,不写
- 打开模式为w+,那么指针就是在文件开头处读写
- 打开模式为a+,那么指针就是在文件末尾处读写