流的分类
1:按输出方向分:以程序为参数物.
输入流:将文件中数据读取到程序中.
注意:如果文件不存在,输入流会抛异常(报错).
输出流:将程序中数据写入到文件中.
注意:如果文件不存在,先创建文件,再向文件中写入数据.
2:按单元分:bit(位),byte,kb,mb,g,t,p
字节流:以字节为单元传输的流.
作用:用来传输部分文本文件,图片,视频,二进制文件.
字符流:以字符为单元传输的流.
作用:用来传输文本文件.
3:按功能分:
节点流:原始流.
处理流:封装了原始流.
##拷贝文件
eg: public static void main(String[] args) throws IOException {
//字节输出流
FileOutputStream fo=null;
//字节输入流
FileInputStream fi=null;
try {
fi=new FileInputStream("C:\\Users\\37617\\Desktop\\林里巴西\\图片资源\\美女图片\\ad.jpg");
fo=new FileOutputStream("C:\\Users\\37617\\Desktop\\d.jpg");
byte [] b=new byte[1024];
//int len=fo.write(b,0,len);
int len=0;
while(len!=-1){
//第一次写入了0个字节,因为这里如果把写入写后面的话,会报数组越界所以,不也可以在while外面先读取一边,再执行
//while里面的代码。这样写的目的只是为了让代码更简单
//将读取的内容写入到文件中
fo.write(b,0,len);
//接着读
len=fi.read(b);
}
System.out.println("copy成功");
} catch (FileNotFoundException e) {
e.printStackTrace();
}finally {
if (fi!=null) {
fi.close();
}
if (fo!=null) {
fo.close();
}
}
}
}