引子:我们在读取磁盘文件,并经过网络传输时,我们能不假思索的用到如下代码。
private void sendFile(String filePath) {
try {
//1.从磁盘读取文件
File file = new File(filePath);
DataInputStream dis = new DataInputStream(new FileInputStream(filePath));
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
//2.每次读取的1024字节大小数据,放入用户缓冲区
byte[] buf = new byte[1024];
int len = 0;
//3.循环读取数据
while ((len = dis.read(buf)) != -1) {
//4.写入网络输入流
dos.write(buf, 0, len);
}
dos.flush();
//4.关闭输入输出流
dis.close();
dos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}