一、概念
InputStream(输入流):输入流是用来读入数据的。
OutputStream(输出流):输出流是用来写出数据的。
write(byte b[], int off, int len):
写入字节数组中的len字节到输出流。参数中数组b[]就是待写入的字节数组(不一定全部写入),从第offset位开始写入,每次写入的长度为len。
二、利用读取字节流实现图片的的复制
public class fileStreamTest {
public static void main(String[] args) {
FileInputStream fin = null;
FileOutputStream fout = null;
try {
//1.造文件
File srcFile = new File("F:\\WorkSpaceIdea1\\JavaSenior\\day09\\p1.jpg");
File destFile = new File("F:\\WorkSpaceIdea1\\JavaSenior\\day09\\p2.jpg");
//2.造流
fin = new FileInputStream(srcFile);
fout = new FileOutputStream(destFile);
//3.读数据
byte[] buffer = new byte[5];
int len;//记录每次读入的字节数
while ((len=fin.read(buffer))!=-1)
{
fout.write(buffer,0,len);
}
System.out.println("复制成功!");
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fin!=null)
{
try {
//4.关闭流
fin.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(fout!=null)
{
try {
fout.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
三、小结
1.对于文本文件(.txt,.java,.c,.cpp),使用字符流处理
2.对于非文本文件(.jpg,.mp3,.mp4,.doc,.ppt,…),使用字节流处理