A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© nagi 中级黑马   /  2014-9-21 14:46  /  1402 人查看  /  6 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

定义一个文件输入流,调用read(byte[] b)方法将exercise.txt文件中的所有内容打印出来(byte数组的大小限制为5)。
  1. package com.itheima;

  2. import java.io.ByteArrayOutputStream;
  3. import java.io.FileInputStream;
  4. import java.io.FileNotFoundException;
  5. import java.io.IOException;

  6. /**
  7. * 5、 定义一个文件输入流,调用read(byte[] b)方法
  8. *  将exercise.txt文件中的所有内容打印出来(byte数组的大小限制为5)。
  9. *  
  10. *  分析:
  11. *          1、建立一个 FileInputStream 准备从文件中读出数据
  12. *  
  13. *          2、因为每一次读取5个字节,而中文是两个字节,会出现中文 乱码,
  14. *                  这时需要使用ByteArrayOutputStream 保每一次读取的数据,
  15. *  
  16. *          3、等到数据等完的时候、再一次打印出ByteArrayOutputStream 全部值
  17. *                  这样再解决乱码问题
  18. *                 
  19. *  
  20. * @author dell
  21. *
  22. */
  23. public class Test5 {

  24.         public static void main(String[] args) {
  25.                
  26.                 //声明一个文件输入流
  27.                 FileInputStream in = null;
  28.                
  29.                 //声明一个字节数组输出流
  30.                 ByteArrayOutputStream baos = null;
  31.                
  32.                 //定义了一个5个字节的数组
  33.                 byte[] b = new byte[5];
  34.                
  35.                 int len = 0;
  36.                
  37.                 try{
  38.                        
  39.                         //定义一个FileInputStream 准备从文件读取字节数
  40.                         in = new FileInputStream("C:\\Users\\dell\\myEclipse\\exam\\src\\exercise.txt");
  41.                        
  42.                         //实例化一个ByteArrayOutputStream 对象
  43.                         baos = new ByteArrayOutputStream();
  44.                        
  45.                         //循环打印出字节
  46.                         while((len=in.read(b))!=-1){
  47.                                
  48.                                 //向字节数组里面输出数据
  49.                                 baos.write(b , 0 , len);
  50.                                
  51.                         }
  52.                        
  53.                        
  54.                         //得到字节输入流的内置Byte数组
  55.                         byte[] lens = baos.toByteArray();


  56.                         //将数据全部的数据打印出来
  57.                         System.out.println(new String(lens));
  58.                        
  59.                 }catch(FileNotFoundException e){
  60.                                 //文件不存的时候,打印出的异常详细信息
  61.                                 e.printStackTrace();
  62.                                 System.out.println("文件找不到!");
  63.                                
  64.                 }catch(IOException e1){
  65.                         e1.printStackTrace();
  66.                 }
  67.                 finally{
  68.                         try{
  69.                                 if(baos != null){
  70.                                         //关闭字节数组的输出流
  71.                                         baos.close();
  72.                                         baos = null;
  73.                                 }
  74.                                
  75.                                 if(in != null){
  76.                                         //关闭文件输入流
  77.                                         in.close();
  78.                                         in= null;
  79.                                 }
  80.                         }catch(IOException e){
  81.                                 e.printStackTrace();
  82.                         }finally{
  83.                                 //加速虚拟机对其回收
  84.                                 baos = null;
  85.                                 in = null;
  86.                                
  87.                         }
  88.                 }
  89.                
  90.         }
  91.        
  92. }
复制代码
这是我做了,,大家有更好的可以分享一下。

6 个回复

倒序浏览
收藏 学习了 谢谢LZ分享
回复 使用道具 举报
最后将变量都置为空,很赞,看懂了
回复 使用道具 举报
谢谢lz分享
回复 使用道具 举报
不懂,不是装的!
回复 使用道具 举报
为了梦想!再也不想做一个只能低头求职的人!
回复 使用道具 举报
楼主很厉害~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马