AS3 fileStream出现将文件读入内存

2024-02-22

我正在编写一个流程,用户需要选择一个远远超出其可用 RAM 的文件,并将该文件分成小块(用于上传)。

我能够创建对所述文件的 File 引用,但是当我尝试将其传递给 fileStream 时,它似乎尝试在对其进行操作之前尝试将其读入内存。

有没有办法让 fileStream 仅获取对文件的引用,然后按照记录的方式使用 readBytes ?

这是我的代码...当用户在浏览器对话框中选择文件时调用它。

private function selectHandler(event:Event):void {
        var file:File = File(event.target);
        trace("selectHandler: name=" + file.name );

        var stream:FileStream = new FileStream();

        var f:File = event.target as File;
        stream.open(f, FileMode.READ);  //here the process will lock up if the file you pass it is too large.
        var bytes:ByteArray = new ByteArray();
        stream.readBytes(bytes,0,1024);
        trace(bytes);
        stream.close();
}

非常感谢,提前。


那么,解决方案...

 stream.readAhead = 10000;// some reasonable number
 stream.openAsync(f, FileMode.READ);  //here the process will no longer lock up, if the above chunk is set to a number that Flash can handle.



   //then in your PROGRESS listener you read the bytes into a byteArray
  if(target.availableBytes >= 10000){//you need this because progress gets called many times before the full chunk is read. You only want to use it when you have the full chunk. (you also will want to keep track of the total read and when that total + chunk > fileSize, you'll want to adjust your chunk to read in that last bunch of bytes.
    var bytes:ByteArray = new ByteArray();
    stream.readBytes(bytes,0,event.target.availableBytes); //this will provoke the next segment to get read as well
  }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AS3 fileStream出现将文件读入内存 的相关文章

  • As3 Graph API 注销

    我正在开发一个由不同用户玩的应用程序 但我使用 as3 graph api 来验证用户身份并在他们的墙上发布 并且我需要在下一个用户在 as3 graph 上开始会话之前注销每个用户应用程序编程接口 http code google com
  • 使用 FILE_FLAG_NO_BUFFERING 会带来明显的速度增益吗?

    最近在MSDN中注意到FILE FLAG NO BUFFERING标志的详细描述 并阅读了几条关于Windows中无缓冲I O的Google搜索结果 http msdn microsoft com en us library aa36385
  • 在 Actionscript-3 中优化 2D Flash 游戏的动态背景引擎

    编辑2 根据缺乏回复来判断 我开始怀疑我的问题是否足够清楚 请告诉我是否需要详细说明 注意 请参阅底部以获取代码更新 简短介绍 我正在用 ActionScript 编写一个二维 Flash 空间游戏 宇宙无限大 由于这个特性 背景必须动态渲
  • Java读取文件的不同方法

    看来Java中有很多很多读取文本文件的方法 BufferedReader DataInputStream等 我个人最喜欢的是Scanner with a File在构造函数中 它更简单 可以更好地处理数学数据 并且具有熟悉的语法 蜘蛛鲍里斯
  • 验证错误:错误#1014:找不到类

    我正在使用 Flash Builder 4 5 还使用库 Away3D 4 0 和 Flex 4 5 1 SDK 开发 AS3 项目 另外 我添加了自己的 SWC 库 我之前将其编译到我的项目中 如果我在 SWC 库中导入类 它会起作用 但
  • VTK IO 的 C/C++ 库 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个 C 模拟 它会生成大量数据 现在我正在使用 MATLAB 库将结果保存为 mat 文件 但最终
  • 为什么 window.location.reload 需要包装在 function(){} 中?

    我编写了一些代码来向页面添加按钮 var myButt document createElement button myButt onclick window location reload myButt innerText Reload
  • ReferenceError:错误#1069:属性 box_mc_0

    我试图使用循环隐藏舞台上的影片剪辑 但在发布它时出现以下错误 这只是这个概念的一个示例 var q for q 0 q lt 3 q stage box mc q visible false 错误消息 参考错误 错误 1069 财产box
  • 如何在 OpenCV 中将 Float Mat 写入文件

    我有一个矩阵 Mat B 480 640 CV 32FC1 包含浮点值 我想将此矩阵写入一个可以打开的文件Notepad https en wikipedia org wiki Windows Notepad or 微软Word https
  • Javascript 桥接到 Flash 以在 Flash 中存储 SO“cookie”

    读完这个问题后如何唯一地识别访问我网站的计算机 https stackoverflow com questions 216542 how do i uniquely identify computers visiting my web si
  • DatagramSocket bind() 和 connect() 区别?

    我读了文档 http help adobe com en US FlashPlatform reference actionscript 3 flash net DatagramSocket html 但尚不清楚两者之间有什么区别bind
  • 在 AS3 中创建一个(适当的)计时器

    如何在as3中创建时间计数器 在 google 上进行一些简单的搜索 您会找到 AS3 类 Timer 它实际上是事件计数器 不是一个合适的时间计数效用 我见过这个http blogs adobe com pdehaan 2006 07 u
  • 使用Java修改文件内容

    我想使用java程序删除文件的一些内容 如下所示 这是在同一文件中替换的写入方法还是应该将其复制到另一个文件中 但它删除了文件的所有内容 class FileReplace ArrayList
  • ActionScript Workers 可以用于在单独的线程中播放/生成声音吗?

    我很新ActionScript 工作者 但我想知道这是否可能 从我读到的来看 ActionScript 工作者 ASW 就像单独的线程 可以执行更多 CPU 密集型计算 而无需中断主线程 正在执行主 SWF 文件 我真正看到的唯一一个例子是
  • 闪存应用程序的国际化

    我正在使用 Flash 应用程序 非 Flex 并且我想支持国际化 在flex中有一个很好的抽象ResourceManager 您可以在其中为每个语言环境提供资源包 动作脚本有等效的吗 怎么样全球化 http www servebox or
  • 移动影片剪辑时的视觉错误

    在我尝试创建一个简单的类似乒乓球的游戏时 我遇到了一个非常奇怪的 有时甚至是严重的视觉错误 当我设置球 Flash CS 5 5 库 MovieClip 以相当快的速度在屏幕上移动时 我注意到有时球的边缘会在其移动方向上被短暂切断 当它发生
  • 读/写带有特殊字符的.txt文件

    I open Notepad Windows 并写 Some lines with special characters Special 并前往另存为 someFile txt 与Encoding set to UTF 8 在Java中我有
  • 确定哪个进程锁定了文件

    我有一个在本地运行良好的单元测试 但上传到 TeamCity 构建服务器时失败 并显示 该进程无法访问该文件 因为它正在被另一个进程使用 在我在测试中做任何事情之前 我检查设置是否有文件 存在 如果存在尝试删除它 这会失败并出现相同的错误
  • Flex 中的全局变量

    我正在尝试在 Flex 中使用全局变量 但它似乎无法正常工作 在我的默认 mxml 文件中 我声明以下内容 public var appID int 该变量跟踪我的应用程序中用于 SQL 目的的会话 ID 在另一个 mxml 页面上 我调用
  • 等待进程释放文件

    我如何等待文件空闲以便ss Save 可以用新的覆盖它吗 如果我紧密地运行两次 左右 我会得到一个generic GDI error

随机推荐