字节输入流:
具体操作步骤:
字节输入流操作步骤:
A:创建字节输入流对象
FileInputStream fis = new FileInputStream("a.txt");
B:调用方法读取数据(一次读取一个字节数组,提升效率)
一次读取一个字节数组: public int read(byte[] b):返回实际读取长度,数据被读取到数组中。
-- 测试方法返回长度?根据String类的构造方法构造字符串
C:释放资源
fis.close();
package cokm.edu_04;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class FileInputStreamDemo {
public static void main(String[] args) throws IOException {
//读取a.txt中的文件
//1.创建文件输入流
FileInputStream fis = new FileInputStream("a.txt");
//一次读取一个字节数组
/* byte[] bys= new byte[4];
System.out.println(fis.read(bys));//读取到的是字节数组的实际长度
System.out.println(fis.read(bys));
System.out.println(fis.read(bys));
System.out.println(fis.read(bys));*/
//创建一个字节数组,一般来说字节数组的长度都是1024或者1024的倍数
byte[] bys= new byte[1024];
int len;//实际读取到的长度
while ((len=fis.read(bys))!=-1) {
//只需要将实际读取到的长度转换为字符串就可以
System.out.println(new String(bys, 0, len));
}
//3.关流
fis.close();
}
}
package cokm.edu_04;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyMp4 {
public static void main(String[] args) throws IOException {
//一次读写一个字节数组
//1.封装数据源和目的地
FileInputStream fis = new FileInputStream("D://b.mp4");
FileOutputStream fos = new FileOutputStream("e.mp4");
//一次读写一个字节数组
byte[] bys = new byte[1024];
int len;
while ((len=fis.read(bys))!=-1) {
//读取多少就给fos中写多少数据
fos.write(bys, 0, len);
}
//释放资源
fos.close();
fis.close();
}
}