博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
写数据到文件注意事项write方法
阅读量:6474 次
发布时间:2019-06-23

本文共 797 字,大约阅读时间需要 2 分钟。

 

【问题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);

 

转载于:https://www.cnblogs.com/ftrako/p/5149836.html

你可能感兴趣的文章
在properties.xml中定义变量,在application.xml中取值问题
查看>>
js 数组
查看>>
Linux scp命令详解
查看>>
struct和typedef struct
查看>>
cell reuse & disposebag
查看>>
【故障处理】ORA-12545: Connect failed because target host or object does not exist
查看>>
云时代,程序员将面临的分化
查看>>
js判断移动端是否安装某款app的多种方法
查看>>
学习angularjs的内置API函数
查看>>
4、输出名称 Exported names
查看>>
paste工具
查看>>
Pre-echo(预回声),瞬态信号检测与TNS
查看>>
【转载】如何发送和接收 Windows Phone 的 Raw 通知
查看>>
poj2378
查看>>
【译】SQL Server误区30日谈-Day12-TempDB的文件数和需要和CPU数目保持一致
查看>>
Java文件清单列表
查看>>
js url传值中文乱码之解决之道
查看>>
Atitit.获取某个服务 网络邻居列表 解决方案
查看>>
Trusty TEE
查看>>
[LeetCode] Reverse String 翻转字符串
查看>>