IO中用ByteArrayOutputStream解决乱码问题 --另一种解决乱码的方法

IO中另外一种防止乱码的方法:使用ByteArrayOutputStream
在创建ByteArrayOutputStream时,会自动创建一个以自动增长的缓存区,当数据读取完后再一起统一写出来,就不会有乱码的问题了
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.InputStream;

public class ByteArrayInputStreamTest {
public static void main(String[] args) throws Exception {
ByteArrayOutputStream out = null;
InputStream ins = new FileInputStream("test.txt");
int len = -1;
out = new ByteArrayOutputStream();
// 下面的read方法每次读取一个字节,并返回这个字节的int类型
while ((len = ins.read()) != -1) {
// 每次写入一个字节,out对象会自动创建一个反冲区,并自动增加大小
out.write(len);
System.out.println(out.size());
}
out.close();
ins.close();
System.out.println(out.toString());
}
}
每次写入时打印out对象的长度,可以看到out对象的长度每次增加1,因为每次读取一个字节,这样把所有的数据读取完后再调用toString方法转换成字符就不会出现乱码的问题了

转自:http://blog.csdn.net/xcw931924821/article/details/7224702

最新文章

  1. 十二天 mysql操作
  2. 极光推送NotificationServiceTest.appex文件变红不存在丢失解决办法
  3. oracle 查询周的第一天日期
  4. W3C对DOM2.0定义的标准事件
  5. Web.Config如何输入特殊字符
  6. 从SVN导出指定版本号之间修改的文件(转)
  7. C++指针例
  8. Django中的ORM进阶操作
  9. JavaScript-学习一_var
  10. android application 的使用
  11. 一张图比較 Docker 和 Git:镜像管理设计理念
  12. java利用poi导出数据到excel
  13. synchronized和Lock复习
  14. Windows server 2012 install .net core sdk 2.2.103
  15. 移动端的dl
  16. node有哪些坑?
  17. DP-hdu1176
  18. [BZOJ5427]最长上升子序列/[BZOJ4282]慎二的随机数列
  19. linux cfs调度器_模型实现
  20. nginx的Mainline version、Stable version、Legacy version的版本区别

热门文章

  1. 180602-nginx多域名配置
  2. MySQL☞substr函数
  3. python中为什么 if/while/def/class语句需要冒号?
  4. 关于@media不生效的问题和meta总结
  5. Vue 兄弟组件通信(不使用Vuex)
  6. 剑指offer-包含min函数的栈20
  7. Ext JS 6学习文档-第5章-表格组件(grid)
  8. DAY7敏捷冲刺
  9. javabean的内省技术和BeanUtils的使用
  10. jsp连接MYSQL数据库教程(文字+图)