Я разрабатываю инструмент шифрования, и для нашего формата зашифрованных файлов я использую Base64 для кодирования данных.Я использую кодек Apache Commons для декодирования файлов с помощью Base64InputStream, обернутого вокруг FileInputStream.Это работало как шарм, пока я не проверил это на большом музыкальном файле.По какой-то таинственной причине, когда я делал это, каждый байт после, включая байт 6028, превращался в 0. Код для чтения его в байт []:
FileInputStream filein = new FileInputStream(filename);
Base64InputStream in = new Base64InputStream(filein,false,76,'\n');
byte[] contents = new byte[known_and_tested_correct_filelength];
in.read(contents);
Теперь, по какой-то причине, после байта6028, все в contents
равно 0. Однако contents.length
составляет около 300 000 байтов.Как вы можете догадаться, это сделало чудеса для моего приложения.У кого-нибудь есть мысли о том, что происходит?