Android FileOutputStream FileInputStream 读写问题记录

本文记录了在Android中使用FileOutputStream和FileInputStream进行文件读写时遇到的问题,即文件被清空且写入中文出现乱码。解决方案在于读写时指定编码。作者强调了解决问题的重要性,分享了从错误中学习和成长的经验,提倡主动面对并解决难题,而不是回避问题。
摘要由CSDN通过智能技术生成

问题描述

在使用 FileOutputStream 和 FileInputStream 进行文件读写时发现大概率出现把文件清空的情况,非常费解!

文件的读取和写入代码大体如下:

try {
         input = new FileInputStream(dataFile);
         byte[] buffer = new byte[MOVE_BUFFER_LENGTH];
         int length;
         StringBuilder builder = new StringBuilder();
         while ((length = input.read(buffer)) != -1) {
             builder.append(new String(buffer, 0, length));
         }
         
         output = new FileOutputStream(dataFile);
         output.write("String".getBytes());
     } catch (Exception e) {
         e.getMessage();
     } finally {
         close(input);
         close(output);
     }

在这一段短短的代码中我一直没有认为有什么需要注意的地方,直到遇到了上面的问题, 注意: output = new FileOutputStream(dataFile); 这一段代码执行之后文件就已经被清空了, 即使你没有执行写入代码, 如果想不清空文件而在文件内容末尾写入可以加参数:output &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值