zoukankan      html  css  js  c++  java
  • 写数据到文件注意事项write方法

    【问题1】

    使用FileOutputStream类写数据到文件中,本来是很简单的实现,但就是生成的文件与原文件大小不一样,排查了一整天,才找到问题原因所在,

    writer = new FileOutputStream(savePath);

    byte[] buffer = new byte[2048];

    while ((len = reader.read(buffer)) > 0){

    writer.write(data, 0, size);

    注意:1、不要使用write(),而应该使用write(data, 0, size),因为write()默认使用了buffer.length的长度(buffer容量的大小),而不是buffer的实际大小;

    2、size应该等于len,而不能等于buffer.length,因为len与buffer.length可能不同

    【问题2】

    实现版本更新,把apk下载后存到sdcard没问题,但是apk存到/data/data/--packagename--/files目录下无法自动安装,如下提示
    Unable to open zip '/data/data/com.ftrako.flashlight/files/flashlight.apk': Permission denied

    分析:这是因为apk文件的访问权限问题,需要把apk访问权限对其它应用可读可写,如下(虽然方法已被Deprecated)

    writer = context.openFileOutput(saveFileName, Context.MODE_APPEND|Context.MODE_WORLD_READABLE|Context.MODE_WORLD_WRITEABLE);

  • 相关阅读:
    PHP中字符串和正则表达式的常用函数
    PHP基础语法
    vscode新手心得
    socket数据通讯
    PHP 登录类
    PHP Session 封装类
    php 邮箱验证函数
    PHP MySql 分页实例
    Bootstrap
    projact mail
  • 原文地址:https://www.cnblogs.com/ftrako/p/5149836.html
Copyright © 2011-2022 走看看