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);

  • 相关阅读:
    git clone代码总是失败
    sublime常用快捷键及插件
    canvas圆形倒计时
    box-show的用法
    全选、反选
    数据库,增删改查
    PHP操作MySQL
    输出六个随机字符串
    约瑟夫环的故事
    Unix编程艺术——摘录一
  • 原文地址:https://www.cnblogs.com/ftrako/p/5149836.html
Copyright © 2011-2022 走看看