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出现将文件读入内存 的相关文章

  • 舞台强制渲染/重绘

    通常我会监听 ENTER FRAME 事件并在每次渲染帧时执行代码 但是对于我的应用程序来说这太慢了 2 个 ENTER FRAME 事件之间的时间间隔为 40 毫秒 如果我改变帧率也没关系 那么是否可以在不监听事件的情况下强制Flash重
  • SQL Server 文件操作?

    使用 SQL Server 2005 如何使用 T SQL 将文件读入 SPROC 所以 假设我有一个像这样的 CSV 文件 ID OtherUselessData 1 asdf 2 asdf 3 asdf etc 我基本上想这样做 Sel
  • Youtube as3 API 似乎不再起作用

    我正在使用 as3 Youtube 官方 API 我需要在 swf 文件中加载 API 播放器 我已经在几个项目上完成了 一切都很好 但几个小时后 我的所有项目现在都坏了 这是崩溃的代码片段 Security allowDomain www
  • 时间:2019-03-17 标签:c++fstream并发访问

    如果从不同的进程 线程同时访问文件会发生什么 据我所知 没有锁定文件的标准方法 只有操作系统特定的功能 就我而言 文件将被经常读取而很少写入 现在如果A打开一个文件进行读取 ifstream 并开始读取块 和B打开相同的文件进行写入 ofs
  • AIR - 按比例调整本机窗口大小

    我的应用程序启动时舞台尺寸为 1000 x 500 长宽比为 2 1 本机窗口具有系统镶边 它总是会高一些像素 怎么可能只允许本机窗口按比例调整大小以始终保持舞台的 2 1 宽高比 以下代码无法按我的预期工作 package Imports
  • Actionscript 3 中的外部配置文件

    我需要能够将外部配置文件加载到我的 Flex 应用程序中 我读到 只要将 mimeType 设置为 application octet stream 就可以使用嵌入 package learning import org flixel pu
  • 在没有流媒体服务器的情况下在 Flash 中录制 h.264 视频?

    是否可以在不需要流媒体服务器 如 fms wowza red5 的情况下从 Flash Actionscript 相机 即网络摄像头 保存 h 264 视频 我还想从麦克风获取样本数据 并在客户端对其进行转码 以便用户可以录制 h 264
  • Flex 中的数组与 ArrayCollection

    谁能解释一下 Flex 中 Array 和 ArrayCollection 之间的区别吗 根据 liveDocs ArrayCollection 类是一个包装器 将数组公开为的类 可以访问的集合以及 使用方法和操作 ICollectionV
  • (简单)Flex 3 应用程序需要什么版本的 Flash 播放器?

    Flex 3 应用程序需要什么版本的 Flash 播放器 要求似乎是FLEX开发环境中的HTML WRAPPER ACTIONSCRIPT编译器设置 我可以在那里选择什么来最大程度地兼容旧的 Flash 播放器 v8 播放器可以工作吗 Fl
  • getElementById 无法在 的 Google Chrome 扩展中工作

    在我的 Google Chrome 扩展内容脚本中 我有以下内容 jQuery document ready function var player document getElementById player console log pl
  • AS3:如何获取文本字段中某些文本的左上角和确切的宽度和高度?

    我们正在努力获得一个Rectangle代表文本的精确 边界TextField 尽可能准确 拍摄这张图片 利用我目前的知识 我可以检索blue上面的矩形如下所示 var textRect Rectangle new Rectangle fie
  • Flex:监听文本区域中链接上的“悬停”

    我试图找出链接何时 悬停在 显示 html 文本的文本区域中 我想知道监听光标更改类型的事件是否可能是这样 我在文档中找不到任何内容 有谁知道我可以在这里收听什么活动吗 Thanks 这是一个非常有趣的问题 根据凯的建议 我想到了一种返回A
  • javax.xml.transform.TransformerException: java.io.FileNotFoundException: (访问被拒绝)

    我在最后一行代码中遇到异常 Transformer transformer TransformerFactory newInstance newTransformer DOMSource xmlSource new DOMSource do
  • Applescript 应用程序从文件中读取

    我有一个已编译的 AppleScript 应用程序 已将其移至 Windows 服务器 然后我想将一个文本文件插入到应用程序中 在 Windows 上看起来像一个 zip 文件 myapplescript app Contents Reso
  • 运行时高压缩的 AS3 视频编码(H.264?)

    我需要在运行时将 AS3 中的视频图像数据 比如说显示对象 压缩为高压缩的字节数组 帧速率只需在 5 左右 但 1024x768 视频需要达到 使用 JPG 或 PNG 编码器可提供更高的 KB s 有没有开源方法可以在运行时对 as3 中
  • 从文件中读取文本并将每行中的每个单词存储到单独的变量中

    我有一个包含以下内容的 txt 文件 1 1111 47 2 2222 92 3 3333 81 我想逐行读取并将每个单词存储到不同的变量中 例如 当我读取第一行 1 1111 47 时 我想将第一个单词 1 存储到var 1 1111 进
  • 使用 flash/flex 在客户端硬盘上下载/保存/写入文件

    我想知道如何下载 保存 写入文件我的服务器 to a 客户的计算机使用闪光灯或柔性 我正在寻找的示例可以在http www flexdownloads com http www flexdownloads com Sign up Sign
  • 在 Java 中使用 Zip 和 GZip 文件

    我已经有一段时间没有完成 Java I O 了 而且我不知道使用 Zip 和 GZip 文件的最新 正确 方法 我不一定需要完整的工作演示 我主要是寻找要使用的正确接口和方法 是的 我可以查找任何关于此的随机教程 但性能是一个问题 这些文件
  • 直接将 XML 写入磁盘并附加元素

    我正在尝试编写一个 XML 文件 但它太大而无法存储在内存中 因此我想将其直接写入磁盘 我尝试过使用 XmlWriter 但没有功能使我能够附加到文件末尾 因此我愿意使用常规文件编写器来编写 XML 原始数据 有谁知道任何文件写入类使我能够
  • 使用 Flex 3 从 SWF 创建 EXE,而不需要 AIR?

    我有一个用 Flex 3 MXML 和一些 AS3 编写的简单的小测试应用程序 我可以将其编译为 SWF 但我想将其制作为 EXE 这样我就可以将它提供给我的几个同事 他们可能会发现它有用 使用 Flash 8 我可以只针对 EXE 而不是

随机推荐