Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
public static void saveFileFromBytes(
File file, byte[] buf)
throws IOException
{
saveFileFromBytes(file,buf,0,buf.length);
}
public static void saveFileFromBytes(
File file, byte[] buf, int off, int len)
throws IOException
{
FileOutputStream f= new FileOutputStream(file);
try {
f.write(buf,off,len);
} catch (IOException e) {
try {f.close();} catch (Exception e1) {};
return;
}
f.close();
}
Используется вариант FileOutputStream байтового потока OutputStream.
Здесь обработка исключений несколько сложнее, чем в случае чтения. Дело в том, что операционная система или реализация FileOutputStream для конкретной платформы могут кэшировать операции с диском. Например, данные, посылаемые в файл методом f.write(), могут на самом деле накапливаться в некотором буфере, и только при закрытии файла действительно записываться на диск. Это означает, что потенциальные ошибки на этапе закрытия файла столь же важны, что и ошибки в процессе работы метода f.write(). Игнорировать их, как мы делали в случае чтения, нельзя.
Приведенное выше решение игнорирует ошибки на этапе закрытия файла только в том случае, если какие-то ошибки уже имели место при записи методом f.write() – последние в любом случае окажутся не менее информативными. Если же метод f.write() отработал безошибочно, то закрытие файла выполняется вне каких-либо блоков try/catch, возможные исключения на этом этапе будут переданы наружу.
Копирование файла