Общее·количество·просмотров·страницы

Java Dev Notes - разработка на Java (а также на JavaScript/Python/Flex и др), факты, события из АйТи

суббота, 2 октября 2010 г.

Чтение всего файла в массив байтов

Нужно прочитать файл целиком в массив байтов. Например, для текстовых файлов такое нужно, чтобы затем из байтов сделать строку с нужной кодировкой: public String(byte[] bytes, String encoding).

Далее, код функции, которая позволяет считать файл целиком в массив байтов (взято отсюда: Reading a File into a Byte Array):

public static byte[] getBytesFromFile(File file) throws IOException {
InputStream is = new FileInputStream(file);
long length = file.length();
if (length > Integer.MAX_VALUE) {
return null;
}
 
byte[] bytes = new byte[(int)length];
 
// Read in the bytes
int offset = 0;
int numRead = 0;
while (offset < bytes.length && (numRead=is.read(bytes, offset, bytes.length-offset)) >= 0) {
offset += numRead;
}
 
// Ensure all the bytes have been read in
if (offset < bytes.length) {
throw new IOException("Could not completely read file "+file.getName());
}
 
// Close the input stream and return bytes
is.close();
return bytes;
}

2 комментария:

  1. Для упражнения неплохо, но для продакшена лучше http://commons.apache.org/io/api-1.4/org/apache/commons/io/IOUtils.html#toByteArray%28java.io.InputStream%29

    ОтветитьУдалить

Постоянные читатели