向本地写入数据的方法有以下几点:
1、ajax把要写的数据提交到后台后后台用io写 纯前台貌似正规途径不可能的样子。
2、如果写到服务器端呢。就是所谓的localhost:8080
3、ajax把要写的数据提交到后台后后台用io写 纯前台貌似正规途径不可能的样子,如图:
如果写到服务器端呢。就是所谓的localhost:8080
4、javasript能读取本地的json文件,但是无法写入,读取也本来就是hack的形式读取的,并不像服务端语言那样可以直接操作io,所以最好是后端语言结合使用操作io。
需要先下载安装nodejs即服务器端的js,语法和浏览器端的一样,
write.js
var fs = require("fs")var data = '我是新写入的内容'
// 创建一个可以写入的流,写入到文件 output.txt 中
var writerStream = fs.createWriteStream('output.txt')
// 使用 utf8 编码写入数据
writerStream.write(data,'UTF8')
// 标记文件末尾
writerStream.end()
// 处理流事件 --> data, end, and error
writerStream.on('finish', function() {
console.log("写入完成。")
})
writerStream.on('error', function(err){
console.log(err.stack)
})
console.log("程序执行完毕")
打开cmd,cd到当前目录,node main
文件就创建写入了。
下面这种方法,只支持老版本的ie浏览器ie8及以下;
var fso, f1, f2, sfso = new ActiveXObject("Scripting.FileSystemObject")
f1 = fso.CreateTextFile("c:\\testfile.txt", true)
// 写一行
f1.Write("This is a test.")
// 关闭文件
f1.Close()
// 获取C:\根目录下的文件句柄
f2 = fso.GetFile("c:\\testfile.txt")
// 移动文件到\tmp目录下
f2.Move ("c:\\tmp\\testfile.txt")
// 拷贝文件到\temp目录下
f2.Copy ("c:\\temp\\testfile.txt")
// 获取文件句柄
f2 = fso.GetFile("c:\\tmp\\testfile.txt")
f3 = fso.GetFile("c:\\temp\\testfile.txt")
// 删除文件
f2.Delete()
f3.Delete()
在浏览器中做不到,使用javascript服务器端运行环境可以做到,比如可以使用node.js来做。
如:
fs.writeFile('xxx.txt', 'Hello Node', function (err) {
if (err) throw err
console.log('It\'s saved!')
})
fs.readFile('xxx.txt', function (err, data) {
if (err) throw err
console.log(data)
})