概念:内存与存储设备之间传输数据的通道
流的分类:
1.按方向:
1.1输入流:将<存储设备>中的内容读入到<内存>中
1.2输出流:将<内存>中的内容写入到<存储设备>中
2按单位:
2.1字节流:以字节为单位,可以读写所有数据
2.2字符流:以字符为单位,只能读写文本数据
3.按功能
3.1节点流:具有实际传输数据的读写功能
3.2过滤流:在节点流的基础之上增强功能
OutputStream中的方法:
InputStream中的方法:
InputStream/OutputStream都为抽象类,都需要子类来new对象
FileInputStream:
public int read(byte[] b){}
从流中读取多个字节,将读到内容存到b数组,返回实际读到的字节数;如过达到文件的尾部,则返回-1
//释放资源!
fis.close();
fos.close();
}
}
FileOutputStream:
public void write(byte[] b){}
一次写多个字节,将b数组中所有字节,写入输出流
案例:从一个设备中输入到内存中来,然后输出到另一个设备
//将指定图片,上传一份到项目里来!
//文件是在存储设备中的---》读到程序中来---->写入到存储设备中
//输入流
FileInputStream fis = new FileInputStream("C:\\Users\\Lenovo\\Desktop\\1570252842407.jpg");
//输出流
FileOutputStream fos = new FileOutputStream("messi.jpg");
//缓冲空间过大过小都容易有小问题
int len = 0;//代表每次读到的字节
while((len = fis.read())!=-1) {//只要不读到-1
fos.write(len);//读多少 写多少
}