Существует улучшение ticket для этой проблемы с 2002 года. Причина, по которой это не устраняется, заключается в том, что это повлияет на совместимость с предыдущими версиями Java.
Здесь следуют 2 обходных пути, которые я бы рассмотрел.
Обходной путь 1
Метод write(byte[], int, int)
не генерирует проверенные исключения. Несколько более детально указать 2 дополнительных параметра. Но все-таки занимаемая площадь меньше без пробной зацепки.
baos.write(array, 0, array.length);
Обходной путь 2
Другое возможное решение - написать свой ByteUtil
класс , который перехватит внутреннее исключение.
public final class ByteUtil
{
public static void write(ByteArrayOutputStream baos, byte[] bytes)
{
try
{
baos.write(bytes);
}
catch (IOException e)
{
// impossible
}
}
}
// usage
ByteUtil.write(baos, bytes);