1、先说一下java字节流和字符流的区别。
java字节流主要操作byte类型数据,以byte数组为准,主要操作类是OutputStream和InputStream类。所有与字节操作有关的子类都是直接或者间接继承这两个类。
在java程序中一个字符等于两个字节,那么java提供了Reader和Writer两个专门操作字符流的类。
实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件
2、直接上代码
下面分别实现了使用字节流和字符流读文件:
//使用InputStream 字节流读取数据
public static void input() throws Exception{
//第一步:使用File类找到一个文件
File f = new File("D:"+File.separator+File.separator+"test.txt");
//第二步:通过子类实例化父类
InputStream input = new FileInputStream(f);
//第三步:进行读操作
byte[] b = new byte[(int)f.length()];
int len = input.read(b);
//第四步:关闭输出流
input.close();
System.out.println("内容为:"+new String(b));
// 第二种方式读取
// int len = 0;
// byte[] b = new byte[1024];