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

怎么用javascript写一个函数,打开一个本地文本文件并且每次读8个字节的数据?想用js写一个简单的编码程序... 怎么用javascript写一个函数,打开一个本地文本文件并且每次读8个字节的数据?想用js写一个简单的编码程序 展开
 我来答
xiangyuecn
2014-03-24 · TA获得超过336个赞
知道小有建树答主
回答量:408
采纳率:0%
帮助的人:303万
展开全部

刚好有个介绍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>
左手无聊asd
2014-03-24 · TA获得超过201个赞
知道答主
回答量:160
采纳率:0%
帮助的人:96.4万
展开全部
一般很少会用到javascript去操作本地文件,很不安全。现在倒是有个html5的File API能对文件操作。
追问
我就是自己写个乐呵乐呵,所以不咋考虑安全。。查不到javascript的文件api啊
追答
这边有个,我也没用过这东西,不太会。http://blog.csdn.net/huaweidong2011/article/details/17271067
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式