一、写在前面
在Java中流的一系列操作,可能会感到既熟悉又陌生。熟悉是因为很基础且出镜率很高,陌生对大多数程序员平时工作中很少写相关的代码。
~~ 我是很少写~~
回归正题,本章我不不是探讨流,主要来说下造成‘标题’问题的原因。
问题很简单,稍微看下源码或者debug下就可以找到问题所在,这是一些细节问题,既然出现了在此做下记录,给自己一个警惕。
二、场景引入
今天微信上突然收到前同事一段这样的问题描述
在读取文件时如果文件为空、导致进入while死循环,
并附上一段代码。
/**
* 将文件数据流写入到zip流中
*
* @param fileName
* @param inputStream
* @param outputStream
* @throws IOException
*/
public static void zipInputStream(String fileName, InputStream inputStream, ZipOutputStream outputStream)
throws IOException {
try {
BufferedInputStream bInStream = new BufferedInputStream(inputStream);
outputStream.putNextEntry(new ZipEntry(fileName));
byte[] buffer = new byte[inputSt