黑马程序员技术交流社区
标题:
入学测试题分享
[打印本页]
作者:
nagi
时间:
2014-9-21 14:46
标题:
入学测试题分享
定义一个文件输入流,调用read(byte[] b)方法将exercise.txt文件中的所有内容打印出来(byte数组的大小限制为5)。
package com.itheima;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
/**
* 5、 定义一个文件输入流,调用read(byte[] b)方法
* 将exercise.txt文件中的所有内容打印出来(byte数组的大小限制为5)。
*
* 分析:
* 1、建立一个 FileInputStream 准备从文件中读出数据
*
* 2、因为每一次读取5个字节,而中文是两个字节,会出现中文 乱码,
* 这时需要使用ByteArrayOutputStream 保每一次读取的数据,
*
* 3、等到数据等完的时候、再一次打印出ByteArrayOutputStream 全部值
* 这样再解决乱码问题
*
*
* @author dell
*
*/
public class Test5 {
public static void main(String[] args) {
//声明一个文件输入流
FileInputStream in = null;
//声明一个字节数组输出流
ByteArrayOutputStream baos = null;
//定义了一个5个字节的数组
byte[] b = new byte[5];
int len = 0;
try{
//定义一个FileInputStream 准备从文件读取字节数
in = new FileInputStream("C:\\Users\\dell\\myEclipse\\exam\\src\\exercise.txt");
//实例化一个ByteArrayOutputStream 对象
baos = new ByteArrayOutputStream();
//循环打印出字节
while((len=in.read(b))!=-1){
//向字节数组里面输出数据
baos.write(b , 0 , len);
}
//得到字节输入流的内置Byte数组
byte[] lens = baos.toByteArray();
//将数据全部的数据打印出来
System.out.println(new String(lens));
}catch(FileNotFoundException e){
//文件不存的时候,打印出的异常详细信息
e.printStackTrace();
System.out.println("文件找不到!");
}catch(IOException e1){
e1.printStackTrace();
}
finally{
try{
if(baos != null){
//关闭字节数组的输出流
baos.close();
baos = null;
}
if(in != null){
//关闭文件输入流
in.close();
in= null;
}
}catch(IOException e){
e.printStackTrace();
}finally{
//加速虚拟机对其回收
baos = null;
in = null;
}
}
}
}
复制代码
这是我做了,,大家有更好的可以分享一下。
作者:
爽朗的菜籽
时间:
2014-9-21 17:30
收藏 学习了 谢谢LZ分享
作者:
爽朗的菜籽
时间:
2014-10-17 10:04
最后将变量都置为空,很赞,看懂了
作者:
黄小橙
时间:
2014-10-18 08:56
谢谢lz分享
作者:
绝密飞行
时间:
2014-10-18 09:42
不懂,不是装的!
作者:
会飞的蜗牛
时间:
2014-10-19 09:36
为了梦想!再也不想做一个只能低头求职的人!
作者:
笑脸迷人
时间:
2014-10-19 22:50
楼主很厉害~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2