简介
FileInputStream是输入流,FileOutputStream是输出流,前者负责把目标数据输入,后者则输出到目标存储,这两者都针对的是字节流
这里我们必须要明确一点,任何数据在计算机中都是字节,所以我们利用字节流可以传输任何类型的数据,不限于文件
输入流
咱们从构造函数开始瞅瞅
构造方法都是让我们写入一个文件,从而与之建立联系
读方法
方法一:从输入流中读入一个字节
方法二:从输入流中读入一串字节来填满字节数组
方法三:把数组从起始位置填充到结束位置
输出流
构造函数类似,都是让我们填一个文件,然后与之建立联系
写方法
方法一:把字节数组输出
方法二:从字节数组中的开始位置到结束位置的字节输出
方法三:输出一个字节
实例
需求:把一张图片复制到指定文件夹
import java.io.*;
public class IOMain {
public static void main(String[] args) throws Exception{
FileStream();
}
public static void FileStream() {
FileInputStream fis=null;
FileOutputStream fos=null;
try {
//创建一个输入流和输出流
fis=new FileInputStream("C:\\Users\\Administrator\\Desktop\\IO\\Test.jpg");
fos=new FileOutputStream("C:\\Users\\Administrator\\Desktop\\IO\\TestCopy.jpg");
byte[] b=new byte[1024];
int num=0;
while((num=fis.read(b))!=-1)
{
fos.write(b);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally {
//分别关闭输入和输出流
try {
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
总结
FileInputStream和FileOutputStream分别对应着输入流,输出流,他们是针对任何数据的,因为我们的数据都可以转换成字节流