java输入输出流InputStream/OutputStream

概念:内存与存储设备之间传输数据的通道

流的分类:

1.按方向:

1.1输入流:将<存储设备>中的内容读入到<内存>中

1.2输出流:将<内存>中的内容写入到<存储设备>中

2按单位:

2.1字节流:以字节为单位,可以读写所有数据

2.2字符流:以字符为单位,只能读写文本数据

3.按功能

3.1节点流:具有实际传输数据的读写功能

3.2过滤流:在节点流的基础之上增强功能

OutputStream中的方法:

java输入输出流InputStream/OutputStream_第1张图片

InputStream中的方法:

java输入输出流InputStream/OutputStream_第2张图片

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);//读多少 写多少
}

你可能感兴趣的:(java输入输出流InputStream/OutputStream)