利用JavaScript操作文件

  在之前用msp430单片机做东西的时候,有时候会结合网页来进行上位机的显示,而从串口中读取数据就显得很重要,一开始做知识入门级,只会用C语言程序+js+ActiveX的方式来读取数据和控制单片机。

  首先是C语言程序读取串口,由于之前已经写过,不再写了,送上读串口写串口链接。

  其次就是利用IE浏览器的ActiveX控件从网页端的js函数从C语言写入的文件中读取数据或是将数据写入文件。

  js读取文件内容

function txtread()
{
    var fso=new ActiveXObject("Scripting.FileSystemObject"); 
// 打开文件 
    var ts = fso.OpenTextFile("test\\readdata.txt", 1);  //1表示只读

//遍历读取
    while (!ts.AtEndOfStream)
    {

        s = ts.Readline();
        var a = document.getElementById('duqu');
        a.value = s;

    } 

    ts.Close();
}
 js将一个二进制数转化成十六进制并写入文件(这种操作就可以用来控制单片机外接的例如LED这样的设备)

function txtsave()
{
    var oFso,oFile,sFile,sContent, x, y, z;
    sFile = "test\\orderdata.txt";
    var a = document.getElementById('cunqu').value;
    //var ch = a;
    x = parseInt(a,2);
    y = x.toString(16);//2进制->16进制
    var ch = a.tostring();
    oFso = new ActiveXObject("Scripting.FileSystemObject");  
    oFile = oFso.OpenTextFile(sFile,2,true); //写方式打开
    oFile.WriteLine(y);      
    oFile.Close();  
}
 上述是在物联网实验方面经常用到的一些简单函数,下面就是在普通场景下js对文件的操作。

  用js创建文件

  

var fso, f1;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.CreateTextFile("c:\\testfile.txt", true);
  js创建并且写入数据

 

function CreateFile()
{
   var fso, tf;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   tf = fso.CreateTextFile("c:\\testfile.txt", true);
   // 写一行,并且带有新行字符。
   tf.WriteLine("Testing 1, 2, 3.") ;
   // 向文件写三个新行字符。  
   tf.WriteBlankLines(3) ;
   // 写一行。
   tf.Write ("This is a test.");
   tf.Close();
}
  js读取数据

  

function ReadFiles()
{
   var fso, f1, ts, s;
   var ForReading = 1;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f1 = fso.CreateTextFile("c:\\testfile.txt", true);
   // 写一行。
  // Response.Write("Writing file <br>");
   f1.WriteLine("Hello World");
   f1.WriteBlankLines(1);
   f1.Close();
   // 读取文件的内容。
  // Response.Write("Reading file <br>");
   ts = fso.OpenTextFile("c:\\testfile.txt", ForReading);
   s = ts.ReadLine();
  // Response.Write("File contents = '" + s + "'");
  alert(s);
   ts.Close();
}
  移动复制或是删除文件

  

移动文件File.Move 或 FileSystemObject.MoveFile
复制文件File.Copy 或 FileSystemObject.CopyFile
删除文件File.Delete 或 FileSystemObject.DeleteFile

function ManipFiles()
{
      var fso, f1, f2, s;   
    fso = new ActiveXObject("Scripting.FileSystemObject");   
    f1 = fso.CreateTextFile("c:\\testfile.txt", true);  
    Response.Write("Writing file <br>");   // 写一行。
    f1.Write("This is a test.");

    f1.Close();   Response.Write("Moving file to c:\\tmp <br>");//关闭文件

    f2 = fso.GetFile("c:\\testfile.txt");//获取C盘根目录下的testfile文件

    // 把文件移动到 \tmp 目录。
    f2.Move ("c:\\tmp\\testfile.txt");   Response.Write("Copying file to c:\\temp <br>");   // 把文件复制到 \temp 目录。
    f2.Copy ("c:\\temp\\testfile.txt");   Response.Write("Deleting files <br>");
    f2 = fso.GetFile("c:\\tmp\\testfile.txt");   f3 = fso.GetFile("c:\\temp\\testfile.txt");
    //删除文件。
    f2.Delete();   f3.Delete();   Response.Write("All done!");
}
 其他几种操作

  1.readAsArrayBuffer(file):将文件读取为ArrayBuffer。
  2.readAsBinaryString(file):将文件读取为二进制字符串
  3.readAsDataURL(file):将文件读取为Data URL
  4.readAsText(file, [encoding]):将文件读取为文本,encoding缺省值为'UTF-8'


  更多的操作以后还会再整理总结。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值