任何人都可以提供一些示例代码来使用 JavaScript 读取和写入文件吗?
如何使用 JavaScript 读取和写入文件?
为完整起见,OP 没有说明他希望在浏览器中执行此操作(如果他是,如所述,通常是不可能的)
然而 javascript 本身确实允许这样做;它可以用服务器端 javascript 来完成。
编辑:该链接指向现在已被 Oracle 移动的 Sun 文档。
为了跟上时代,这里是 FileSystem 类的 node.js 文档:http : //nodejs.org/docs/latest/api/fs.html
编辑(2):您现在可以使用 HTML5 读取文件客户端:http : //www.html5rocks.com/en/tutorials/file/dndfiles/
否。浏览器端 javascript 无权写入客户端计算机,而不必禁用许多安全选项
未来已来!提案接近完成,不再有 ActiveX 或 flash 或 java。现在我们可以使用:
您可以使用拖放功能将文件放入浏览器,或使用简单的上传控件。一旦用户选择了一个文件,您就可以使用 Javascript 阅读它:http : //www.html5rocks.com/en/tutorials/file/dndfiles/
这是 mozilla 提案
http://www-archive.mozilla.org/js/js-file-object.html
这是通过spidermonkey 和adobe 的extendscript 中的编译开关实现的。另外(我认为)您在 Firefox 扩展中获得 File 对象。
犀牛有一个(相当粗鲁的) readFile 函数 https://developer.mozilla.org/en/Rhino_Shell
对于 Rhino 中更复杂的文件操作,您可以使用 java.io.File 方法。
你不会在浏览器中得到任何这些东西。对于浏览器中的类似功能,您可以使用 HTML5、客户端持久性、cookie 和闪存存储对象中的 SQL 数据库功能。
这个 Javascript 函数向通过浏览器运行它的用户提供了一个完整的“另存为”对话框。用户按 OK 并保存文件。
编辑:以下代码仅适用于 IE 浏览器,因为 Firefox 和 Chrome 已将此代码视为安全问题并已阻止其工作。
// content is the data you'll write to file<br/>
// filename is the filename<br/>
// what I did is use iFrame as a buffer, fill it up with text
function save_content_to_file(content, filename)
{
var dlg = false;
with(document){
ir=createElement('iframe');
ir.id='ifr';
ir.location='about.blank';
ir.style.display='none';
body.appendChild(ir);
with(getElementById('ifr').contentWindow.document){
open("text/plain", "replace");
charset = "utf-8";
write(content);
close();
document.charset = "utf-8";
dlg = execCommand('SaveAs', false, filename+'.txt');
}
body.removeChild(ir);
}
return dlg;
}
调用函数:
save_content_to_file("Hello", "C:\\test");