方法中的形参传入匿名IO流,此流需要关闭吗?怎么关闭?

问题遇到的现象和发生背景

想请问一下StreamUtils.streamToByteArray里传入的匿名IO流accept.getInputStream()是否需要关闭?如何关闭?
我有想过在方法里进行关闭,但是,一旦关闭,如果后续在主方法中调用accept.getOutputStream()是会抛出socket is closed异常的。所以不能在方法中关闭。

用代码块功能插入代码,请勿粘贴截图
public class TCPFileUploadServer {
    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket = new ServerSocket(8888);
        Socket accept = serverSocket.accept();

//        InputStream ais = accept.getInputStream();
        byte[] picture = StreamUtils.streamToByteArray(accept.getInputStream());

    }
}

其中StreamUtils.streamToByteArray 静态方法如下

public static byte[] streamToByteArray(InputStream is) throws IOException {
        byte[] buff = new byte[1024];
        int readLen = 0;
        /*把字节数据写入到数组里,所以用ByteArrayOutputStream*/
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        while((readLen = is.read(buff)) != -1){
            baos.write(buff,0,readLen);
        }
        /*返回此数组*/
        byte[] bytes = baos.toByteArray();
        baos.close();
        return bytes;
    }