怎么用javascript一次读8byte的文本文件

怎么用javascript写一个函数,打开一个本地文本文件并且每次读8个字节的数据?想用js写一个简单的编码程序

刚好有个介绍filesystem的就有你这个功能:

<p>
从www.html5rocks.com/zh/tutorials/file/dndfiles
中间“分割文件”部分摘过来的,他是分别读取的1-5,6-15,7-8字节的数据,可以参考一下,很容易改成连续读取8个字节的,你懂的
</p>
<style>
  #byte_content {
    margin: 5px 0;
    max-height: 100px;
    overflow-y: auto;
    overflow-x: hidden;
  }
  #byte_range { margin-top: 5px; }
</style>

<input type="file" id="files" name="file" /> Read bytes: 
<span class="readBytesButtons">
  <button data-startbyte="0" data-endbyte="4">1-5</button>
  <button data-startbyte="5" data-endbyte="14">6-15</button>
  <button data-startbyte="6" data-endbyte="7">7-8</button>
  <button>entire file</button>
</span>
<div id="byte_range"></div>
<div id="byte_content"></div>

<script>
  function readBlob(opt_startByte, opt_stopByte) {

    var files = document.getElementById('files').files;
    if (!files.length) {
      alert('Please select a file!');
      return;
    }

    var file = files[0];
    var start = parseInt(opt_startByte) || 0;
    var stop = parseInt(opt_stopByte) || file.size - 1;

    var reader = new FileReader();

    // If we use onloadend, we need to check the readyState.
    reader.onloadend = function(evt) {
      if (evt.target.readyState == FileReader.DONE) { // DONE == 2
        document.getElementById('byte_content').textContent = evt.target.result;
        document.getElementById('byte_range').textContent = 
            ['Read bytes: ', start + 1, ' - ', stop + 1,
             ' of ', file.size, ' byte file'].join('');
      }
    };

    if (file.webkitSlice) {
      var blob = file.webkitSlice(start, stop + 1);
    } else if (file.mozSlice) {
      var blob = file.mozSlice(start, stop + 1);
    }
    reader.readAsBinaryString(blob);
  }
  
  document.querySelector('.readBytesButtons').addEventListener('click', function(evt) {
    if (evt.target.tagName.toLowerCase() == 'button') {
      var startByte = evt.target.getAttribute('data-startbyte');
      var endByte = evt.target.getAttribute('data-endbyte');
      readBlob(startByte, endByte);
    }
  }, false);
</script>
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-03-24
一般很少会用到javascript去操作本地文件,很不安全。现在倒是有个html5的File API能对文件操作。追问

我就是自己写个乐呵乐呵,所以不咋考虑安全。。查不到javascript的文件api啊

追答

这边有个,我也没用过这东西,不太会。http://blog.csdn.net/huaweidong2011/article/details/17271067

怎么用javascript一次读8byte的文本文件
从www.html5rocks.com\/zh\/tutorials\/file\/dndfiles中间“分割文件”部分摘过来的,他是分别读取的1-5,6-15,7-8字节的数据,可以参考一下,很容易改成连续读取8个字节的,你懂的 #byte_content { margin: 5px 0; max-height: 100px; overflow-y: auto; overflow-x: hidden; ...

js如何读取本地文件(js如何读取本地文件数据)
一共有3种方法可用于创建一个空文本文件,这种文件有时候也叫做文本流(textstream)。? 第一种是使用CreateTextFile方法。代码如下:? var?fso,?f1;? fso?=?new?ActiveXObject("Scripting.FileSystemObject");? f1?=?fso.CreateTextFile("c:\/\/testfile.txt",?true); 第二种是使用OpenTextFile方法,并添加上ForWr...

怎么能用js脚本把文件数据转化为byte[],谁知道麻烦告诉下方法!!_百度...
function ReadTxt(file){ var path=file.value var fso = new ActiveXObject("Scripting.FileSystemObject");var f = fso.OpenTextFile(path, 1);var txt=f.ReadAll();}

一文带你看懂Node的Buffer类
换句话来说你电脑里面的文件,不管是纯文本还是图片还是视频,在计算机的硬盘里面都是由01这两个数字组成的。在计算机科学中我们把0或者1单个数字叫做一个比特(bit),8个比特可以组成一个字节(byte)。十进制(decimal)数字16如果用1个字节来表示的话,底层存储结构是:我们可以看到16用二进制表示的话相比...

深入JavaScript运行原理
Parse的V8官方文档:https:\/\/v8.dev\/blog\/scanner Ignition是一个解释器,会将AST转换成ByteCode(字节码) 同时会收集TurboFan优化所需要的信息(比如函数参数的类型信息,有了类型才能进行真实的运算); 如果函数只调用一次,Ignition会执行解释执行ByteCode; Ignition的V8官方文档:https:\/\/v8.dev\/blog\/ignition-interpreter...

JavaScript如何使用fetch来完成异步请求的实例介绍
Ajax请求普通的Ajax请求,用XHR发送一个json请求一般是这样的:使用fetch实现的方式:也可以用async\/await的方式用了await后,写异步代码感觉像同步代码一样爽。await后面可以跟Promise对象,表示等待Promise resolve()才会继续下去执行,如果Promise被reject()或抛出异常则会被外面的try...catch捕获。使用fetch...

为什么使用 JavaScript 中 string 的 trim 方法时要替换 \ 呢...
至少在 低版本的 IE浏览器下 ,jQuery 1.7.2 是无法过滤字符串两端的 BOM 字符。考虑到某些浏览器实现的 trim 不过滤 <NBSP> 或 <BOM>,于是 jQuery 多加了一层检测,jQuery 1.8.1 在之前版本的基础上就添加了对BOM的过滤 上面是引用过来的 说白了就是文件的BOM问题,架设js通过Ajax获取内容...

用JavaScript 的 XMLHttpRequest 对象阅读只提供 GB2312 编码的网页...
Response.ContentType="text\/xml"Response.CharSet = "GB2312"我用ASP是这样写的.但是服务器端不能控制的话.只能对客户端进行编码了.http:\/\/hi.baidu.com\/loadinger\/blog\/item\/6ba9da1652dbe118962b43aa.html 上面是我的这个AJAX的代码.不知道对LZ有没有帮助.楼主QQ多少.一起研究一下编码问题....

要从文件"file.dat"中读出第10个字节到变量c中,下列哪个方法适合?_百度...
并且跳过的字节数可能包括底层文件的 EOF(文件结束符)之后的一些字节数。如果试图在跳过末尾之后读取流,那么会返回指示文件末尾的 -1。覆盖:类 InputStream 中的 skip 参数:n - 要跳过的字节数。返回:实际跳过的字节数。抛出:IOException - 如果 n 为负,或者发生 I\/O 错误。

如何使用JavaScript中的ActiveXObject 对象
l AvailableSpace或FreeSpace:以字节(byte)为单位计算的驱动器可用空间。l DriveLetter:驱动器字母。l DriveType:驱动器类型,取值为:removable(移动介质)、fixed(固定介质)、network(网络资源)、CD-ROM或者RAM盘。l SerialNumber:驱动器的系列码。l FileSystem:所在驱动器的文件系统类型,取值为...

相似回答