XUL程序中访问文件,非常简单,非常痛苦

先贴上短短的代码。。。

function useFile () {
    var a_in_name  = CQI('@mozilla.org/file/local;1',Ci.nsILocalFile);
    var a_out_name = CQI('@mozilla.org/file/local;1',Ci.nsILocalFile);
    var a_in_stream  = CQI('@mozilla.org/network/file-input-stream;1',Ci.nsIFileInputStream);
    var a_out_stream = CQI('@mozilla.org/network/file-output-stream;1',Ci.nsIFileOutputStream);
    var js_in  = CQI('@mozilla.org/scriptableinputstream;1',Ci.nsIScriptableInputStream);
   
    a_in_name.initWithPath('D://js.txt'); //读取js.txt
    a_out_name.initWithPath('D://js2.txt'); //写到js2.txt
    a_out_name.create(Ci.nsIFile.NORMAL_FILE_TYPE, 7);
    a_in_stream.init(a_in_name, 4, 0, 0);
    a_out_stream.init(a_out_name, 4, 0, 0);
    js_in.init(a_in_stream);

    var o  = js_in.read(200);
    a_out_stream.write(o,o.length);
   
    js_in.close();
    a_out_stream.close();
}

程序功能很简单,从js.txt文件里面最多读200个字符,然后全部写到js2.txt里面。。。
如果像区区一样用Perl/Python/TCL/或者哪怪是C++或者C,使用标准库都不会这么冗长啊。。
不知道读者你知道不知道有什么简单的方法实现这么个简单的IO,不要说用程序库,这个下面区区会讲到。


上面的文件IO操作功能,在区区的认知当中,只有Java版的啰嗦程序可以与之相当。。
而且上面的程序还是不能在其它机器上运行的,因为CQI是区区写的一个简化函数,Ci是区区写的简化变量。

不然你的程序可能是这个样子。

var a_in_name  = CQI('@mozilla.org/file/local;1',Ci.nsILocalFile);
==============>
var a_in_name = Components.classes['@mozilla.org/file/local;1']
.createInstance(Components.interfaces.nsILocalFile);

现在再回想一下,你我只是想读写一下文件而已啊~~

那用XULrunner框架开发是否就会很痛苦呢??…………一开始是,万事开头难。变换语言或者平台有一个
起步期,在此期间,要学习和逐步型成知识库/文档库/经验库,这时你才能享用这个平台最初的各种优点。

var Cc = Components.classes;就是一个很好的例子。







评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值