Class IOFun

java.lang.Object
xyz.cofe.io.fn.IOFun

public class IOFun
extends java.lang.Object
Функции обработки Stream
Author:
user
  • Constructor Summary

    Constructors 
    Constructor Description
    IOFun()  
  • Method Summary

    Modifier and Type Method Description
    static void appendBytes​(java.io.File file, byte[] data)
    Запись байт данных в конец файла
    static void appendBytes​(java.io.File file, byte[] data, int dataOffset, int dataSize)
    Запись байт данных в конец файла
    static void appendBytes​(java.io.File file, byte[] data, int dataOffset, int dataSize, int blockSize, java.util.function.BiConsumer<java.lang.Long,​java.lang.Long> progress)
    Запись байт данных в конец файла
    static void appendText​(java.io.File file, java.lang.String string, java.lang.String cs)
    Запись текстовых данных в конец файла
    static void appendText​(java.io.File file, java.lang.String string, java.nio.charset.Charset cs)
    Запись текстовых данных в конец файла
    static void appendText​(java.io.File file, java.lang.String string, java.nio.charset.Charset cs, int blockSize, java.util.function.BiConsumer<java.lang.Long,​java.lang.Long> progress)
    Запись текстовых данных в конец файла
    static long copy​(java.io.InputStream from, java.io.OutputStream to)
    Копирует данные из входного потока в выходной поток.
    static long copy​(java.io.InputStream from, java.io.OutputStream to, long maxSize)
    Копирует данные из входного потока в выходной поток.
    static long copy​(java.io.InputStream from, java.io.OutputStream to, long maxSize, int blockSize, java.util.function.Consumer<java.lang.Long> progress)
    Копирует данные из входного потока в выходной поток.
    static byte[] readBytes​(java.io.File file, int maxSize, int blockSize, java.util.function.BiConsumer<java.lang.Long,​java.lang.Long> progress)
    Чтение байт данных
    static byte[] readBytes​(java.io.InputStream from)
    Чтение байтового потока
    static byte[] readBytes​(java.io.InputStream from, int maxSize)
    Чтение байтового потока
    static byte[] readBytes​(java.io.InputStream from, int maxSize, int blockSize, java.util.function.Consumer<java.lang.Long> progress)
    Чтение байтового потока
    static byte[] readBytes​(java.net.URL url)
    Чтение байт данных
    static byte[] readBytes​(java.net.URL url, int maxSize, int blockSize, java.util.function.Consumer<java.lang.Long> progress)
    Чтение байт данных
    static java.lang.String readText​(java.io.File file, java.lang.String cs)
    Чтение текстовых данных
    static java.lang.String readText​(java.io.File file, java.nio.charset.Charset cs)
    Чтение текстовых данных
    static java.lang.String readText​(java.io.File file, java.nio.charset.Charset cs, int maxSize)
    Чтение текстовых данных
    static java.lang.String readText​(java.io.File file, java.nio.charset.Charset cs, int maxSize, int blockSize, java.util.function.BiConsumer<java.lang.Long,​java.lang.Long> progress)
    Чтение текстовых данных
    static java.lang.String readText​(java.io.InputStream from, java.lang.String cs)
    Чтение текстовых данных
    static java.lang.String readText​(java.io.InputStream from, java.nio.charset.Charset cs)
    Чтение текстовых данных
    static java.lang.String readText​(java.io.InputStream from, java.nio.charset.Charset cs, int maxSize)
    Чтение текстовых данных
    static java.lang.String readText​(java.io.InputStream from, java.nio.charset.Charset cs, int maxSize, int blockSize, java.util.function.Consumer<java.lang.Long> progress)
    Чтение текстовых данных
    static java.lang.String readText​(java.net.URL url, java.lang.String cs)
    Чтение текстовых данных
    static java.lang.String readText​(java.net.URL url, java.nio.charset.Charset cs)
    Чтение текстовых данных
    static java.lang.String readText​(java.net.URL url, java.nio.charset.Charset cs, int maxSize, int blockSize, java.util.function.Consumer<java.lang.Long> progress)
    Чтение текстовых данных
    static void writeBytes​(java.io.File file, byte[] data)
    Запись байт данных в файл
    static void writeBytes​(java.io.File file, byte[] data, int dataOffset, int dataSize)
    Запись байт данных в файл
    static void writeBytes​(java.io.File file, byte[] data, int dataOffset, int dataSize, int blockSize, java.util.function.BiConsumer<java.lang.Long,​java.lang.Long> progress)
    Запись байт данных в файл
    static void writeBytes​(java.io.OutputStream to, byte[] data)
    Запись байт данных в поток
    static void writeBytes​(java.io.OutputStream to, byte[] data, int dataOffset, int dataSize)
    Запись байт данных в поток
    static void writeBytes​(java.io.OutputStream to, byte[] data, int dataOffset, int dataSize, int blockSize, java.util.function.BiConsumer<java.lang.Long,​java.lang.Long> progress)
    Запись байт данных в поток
    static void writeText​(java.io.File file, java.lang.String string, java.lang.String cs)
    Запись текстовых данных в файл
    static void writeText​(java.io.File file, java.lang.String string, java.nio.charset.Charset cs)
    Запись текстовых данных в файл
    static void writeText​(java.io.File file, java.lang.String string, java.nio.charset.Charset cs, int blockSize, java.util.function.BiConsumer<java.lang.Long,​java.lang.Long> progress)
    Запись текстовых данных в файл
    static void writeText​(java.io.OutputStream to, java.lang.String string, java.lang.String cs)
    Запись текстовых данных в поток
    static void writeText​(java.io.OutputStream to, java.lang.String string, java.nio.charset.Charset cs)
    Запись текстовых данных в поток
    static void writeText​(java.io.OutputStream to, java.lang.String string, java.nio.charset.Charset cs, int blockSize, java.util.function.BiConsumer<java.lang.Long,​java.lang.Long> progress)
    Запись текстовых данных в поток

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

  • Method Details

    • copy

      public static long copy​(java.io.InputStream from, java.io.OutputStream to, long maxSize, int blockSize, java.util.function.Consumer<java.lang.Long> progress) throws java.io.IOException
      Копирует данные из входного потока в выходной поток.
      Процесс копирования можно прервать послав потоку (Thread) сигнал прерывания.
      Parameters:
      from - Из какого потока копировать
      to - В какой поток копировать
      maxSize - Максимальное кол-во копируемых данных (0 и меньше - копирование до конца)
      blockSize - Размер блока копируемых данных (0 и меньше - по умолчанию)
      progress - Функция уведомления о прогрессе (возможно null) аргумент функции - кол-во прочитаных байтов
      Returns:
      Кол-во скопированных байтов
      Throws:
      java.io.IOException - Если не может скопировать данные
    • copy

      public static long copy​(java.io.InputStream from, java.io.OutputStream to, long maxSize) throws java.io.IOException
      Копирует данные из входного потока в выходной поток.
      Процесс копирования можно прервать послав потоку (Thread) сигнал прерывания.
      Parameters:
      from - Из какого потока копировать
      to - В какой поток копировать
      maxSize - Максимальное кол-во копируемых данных (0 и меньше - копирование до конца)
      Returns:
      Кол-во скопированных байтов
      Throws:
      java.io.IOException - Если не может скопировать данные
    • copy

      public static long copy​(java.io.InputStream from, java.io.OutputStream to) throws java.io.IOException
      Копирует данные из входного потока в выходной поток.
      Процесс копирования можно прервать послав потоку (Thread) сигнал прерывания.
      Parameters:
      from - Из какого потока копировать
      to - В какой поток копировать
      Returns:
      Кол-во скопированных байтов
      Throws:
      java.io.IOException - Если не может скопировать данные
    • readBytes

      public static byte[] readBytes​(java.io.InputStream from, int maxSize, int blockSize, java.util.function.Consumer<java.lang.Long> progress) throws java.io.IOException
      Чтение байтового потока
      Parameters:
      from - байтовый поток данных
      maxSize - Максимальное кол-во копируемых данных (0 и меньше - копирование до конца)
      blockSize - Размер блока копируемых данных (0 и меньше - по умолчанию)
      progress - Функция уведомления о прогрессе (возможно null), аргумент функции - кол-во прочитаных байтов
      Returns:
      Набор байтов
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • readBytes

      public static byte[] readBytes​(java.io.InputStream from, int maxSize) throws java.io.IOException
      Чтение байтового потока
      Parameters:
      from - байтовый поток данных
      maxSize - Максимальное кол-во копируемых данных (0 и меньше - копирование до конца)
      Returns:
      Набор байтов
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • readBytes

      public static byte[] readBytes​(java.io.InputStream from) throws java.io.IOException
      Чтение байтового потока
      Parameters:
      from - байтовый поток данных
      Returns:
      Набор байтов
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • writeBytes

      public static void writeBytes​(java.io.OutputStream to, byte[] data, int dataOffset, int dataSize, int blockSize, java.util.function.BiConsumer<java.lang.Long,​java.lang.Long> progress) throws java.io.IOException
      Запись байт данных в поток
      Parameters:
      to - Поток в который происходит запись
      data - Набор байтов которых необходимо записать
      dataOffset - Смещение в наборе данных
      dataSize - Кол-во байт необходимых для записи
      blockSize - Размер блока копируемых данных (0 и меньше - по умолчанию)
      progress - Функция уведомления копируемых данных (возможно null),
      первый аргумент - кол-во записанных байтов,
      второй аргумент - кол-во всего копируемых данных
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • writeBytes

      public static void writeBytes​(java.io.OutputStream to, byte[] data, int dataOffset, int dataSize) throws java.io.IOException
      Запись байт данных в поток
      Parameters:
      to - Поток в который происходит запись
      data - Набор байтов которых необходимо записать
      dataOffset - Смещение в наборе данных
      dataSize - Кол-во байт необходимых для записи
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • writeBytes

      public static void writeBytes​(java.io.OutputStream to, byte[] data) throws java.io.IOException
      Запись байт данных в поток
      Parameters:
      to - Поток в который происходит запись
      data - Набор байтов которых необходимо записать
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • readText

      public static java.lang.String readText​(java.io.InputStream from, java.nio.charset.Charset cs, int maxSize, int blockSize, java.util.function.Consumer<java.lang.Long> progress) throws java.io.IOException
      Чтение текстовых данных
      Parameters:
      from - Из какого потока копировать
      cs - Кодировка (возможно null, будет использоваться кодировка по умолчанию)
      maxSize - Максимальное кол-во копируемых данных (0 и меньше - копирование до конца)
      blockSize - Размер блока копируемых данных (0 и меньше - по умолчанию)
      progress - Функция уведомления о прогрессе (возможно null)
      аргумент функции - кол-во прочитаных байтов
      Returns:
      Текстовые данные
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • readText

      public static java.lang.String readText​(java.io.InputStream from, java.nio.charset.Charset cs, int maxSize) throws java.io.IOException
      Чтение текстовых данных
      Parameters:
      from - Из какого потока копировать
      cs - Кодировка (возможно null, будет использоваться кодировка по умолчанию)
      maxSize - Максимальное кол-во копируемых данных (0 и меньше - копирование до конца)
      Returns:
      Текстовые данные
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • readText

      public static java.lang.String readText​(java.io.InputStream from, java.lang.String cs) throws java.io.IOException
      Чтение текстовых данных
      Parameters:
      from - Из какого потока копировать
      cs - Кодировка (возможно null, будет использоваться кодировка по умолчанию)
      Returns:
      Текстовые данные
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • readText

      public static java.lang.String readText​(java.io.InputStream from, java.nio.charset.Charset cs) throws java.io.IOException
      Чтение текстовых данных
      Parameters:
      from - Из какого потока копировать
      cs - Кодировка (возможно null, будет использоваться кодировка по умолчанию)
      Returns:
      Текстовые данные
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • writeText

      public static void writeText​(java.io.OutputStream to, java.lang.String string, java.nio.charset.Charset cs, int blockSize, java.util.function.BiConsumer<java.lang.Long,​java.lang.Long> progress) throws java.io.IOException
      Запись текстовых данных в поток
      Parameters:
      to - Поток в который происходит запись
      string - Текстовые данные
      cs - Кодировка (возможно null, будет использоваться кодировка по умолчанию)
      blockSize - Размер блока копируемых данных (0 и меньше - по умолчанию)
      progress - Функция уведомления копируемых данных (возможно null),
      первый аргумент - кол-во записанных байтов,
      второй аргумент - кол-во всего копируемых данных
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • writeText

      public static void writeText​(java.io.OutputStream to, java.lang.String string, java.lang.String cs) throws java.io.IOException
      Запись текстовых данных в поток
      Parameters:
      to - Поток в который происходит запись
      string - Текстовые данные
      cs - Кодировка (возможно null, будет использоваться кодировка по умолчанию)
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • writeText

      public static void writeText​(java.io.OutputStream to, java.lang.String string, java.nio.charset.Charset cs) throws java.io.IOException
      Запись текстовых данных в поток
      Parameters:
      to - Поток в который происходит запись
      string - Текстовые данные
      cs - Кодировка (возможно null, будет использоваться кодировка по умолчанию)
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • readBytes

      public static byte[] readBytes​(java.io.File file, int maxSize, int blockSize, java.util.function.BiConsumer<java.lang.Long,​java.lang.Long> progress) throws java.io.IOException
      Чтение байт данных
      Parameters:
      file - Файл из которого производится чтение
      maxSize - Максимальный объем читаемых данных
      blockSize - Размер блока копируемых данных (0 и меньше - по умолчанию)
      progress - Функция уведомления копируемых данных (возможно null),
      первый аргумент - кол-во записанных байтов,
      второй аргумент - кол-во всего копируемых данных
      Returns:
      Набор байтов
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • writeBytes

      public static void writeBytes​(java.io.File file, byte[] data, int dataOffset, int dataSize, int blockSize, java.util.function.BiConsumer<java.lang.Long,​java.lang.Long> progress) throws java.io.IOException
      Запись байт данных в файл
      Parameters:
      file - Файл в который производится запись
      data - Набор байтов которых необходимо записать
      dataOffset - Смещение в наборе данных
      dataSize - Кол-во байт необходимых для записи
      blockSize - Размер блока копируемых данных (0 и меньше - по умолчанию)
      progress - Функция уведомления копируемых данных (возможно null),
      первый аргумент - кол-во записанных байтов,
      второй аргумент - кол-во всего копируемых данных
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • writeBytes

      public static void writeBytes​(java.io.File file, byte[] data, int dataOffset, int dataSize) throws java.io.IOException
      Запись байт данных в файл
      Parameters:
      file - Файл в который производится запись
      data - Набор байтов которых необходимо записать
      dataOffset - Смещение в наборе данных
      dataSize - Кол-во байт необходимых для записи
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • writeBytes

      public static void writeBytes​(java.io.File file, byte[] data) throws java.io.IOException
      Запись байт данных в файл
      Parameters:
      file - Файл в который производится запись
      data - Набор байтов которых необходимо записать
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • appendBytes

      public static void appendBytes​(java.io.File file, byte[] data, int dataOffset, int dataSize, int blockSize, java.util.function.BiConsumer<java.lang.Long,​java.lang.Long> progress) throws java.io.IOException
      Запись байт данных в конец файла
      Parameters:
      file - Файл в который производится запись
      data - Набор байтов которых необходимо записать
      dataOffset - Смещение в наборе данных
      dataSize - Кол-во байт необходимых для записи
      blockSize - Размер блока копируемых данных (0 и меньше - по умолчанию)
      progress - Функция уведомления копируемых данных (возможно null),
      первый аргумент - кол-во записанных байтов,
      второй аргумент - кол-во всего копируемых данных
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • appendBytes

      public static void appendBytes​(java.io.File file, byte[] data, int dataOffset, int dataSize) throws java.io.IOException
      Запись байт данных в конец файла
      Parameters:
      file - Файл в который производится запись
      data - Набор байтов которых необходимо записать
      dataOffset - Смещение в наборе данных
      dataSize - Кол-во байт необходимых для записи
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • appendBytes

      public static void appendBytes​(java.io.File file, byte[] data) throws java.io.IOException
      Запись байт данных в конец файла
      Parameters:
      file - Файл в который производится запись
      data - Набор байтов которых необходимо записать
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • readText

      public static java.lang.String readText​(java.io.File file, java.nio.charset.Charset cs, int maxSize, int blockSize, java.util.function.BiConsumer<java.lang.Long,​java.lang.Long> progress) throws java.io.IOException
      Чтение текстовых данных
      Parameters:
      file - Файл из которого производится чтение
      cs - Кодировка (возможно null, будет использоваться кодировка по умолчанию)
      maxSize - Максимальный объем читаемых данных
      blockSize - Размер блока копируемых данных (0 и меньше - по умолчанию)
      progress - Функция уведомления копируемых данных (возможно null),
      первый аргумент - кол-во записанных байтов,
      второй аргумент - кол-во всего копируемых данных
      Returns:
      Текстовые данные
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • readText

      public static java.lang.String readText​(java.io.File file, java.nio.charset.Charset cs, int maxSize) throws java.io.IOException
      Чтение текстовых данных
      Parameters:
      file - Файл из которого производится чтение
      cs - Кодировка (возможно null, будет использоваться кодировка по умолчанию)
      maxSize - Максимальный объем читаемых данных
      Returns:
      Текстовые данные
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • readText

      public static java.lang.String readText​(java.io.File file, java.lang.String cs) throws java.io.IOException
      Чтение текстовых данных
      Parameters:
      file - Файл из которого производится чтение
      cs - Кодировка (возможно null, будет использоваться кодировка по умолчанию)
      Returns:
      Текстовые данные
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • readText

      public static java.lang.String readText​(java.io.File file, java.nio.charset.Charset cs) throws java.io.IOException
      Чтение текстовых данных
      Parameters:
      file - Файл из которого производится чтение
      cs - Кодировка (возможно null, будет использоваться кодировка по умолчанию)
      Returns:
      Текстовые данные
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • writeText

      public static void writeText​(java.io.File file, java.lang.String string, java.nio.charset.Charset cs, int blockSize, java.util.function.BiConsumer<java.lang.Long,​java.lang.Long> progress) throws java.io.IOException
      Запись текстовых данных в файл
      Parameters:
      file - Файл в который производится запись
      string - Текстовые данные
      cs - Кодировка (возможно null, будет использоваться кодировка по умолчанию)
      blockSize - Размер блока копируемых данных (0 и меньше - по умолчанию)
      progress - Функция уведомления копируемых данных (возможно null),
      первый аргумент - кол-во записанных байтов,
      второй аргумент - кол-во всего копируемых данных
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • writeText

      public static void writeText​(java.io.File file, java.lang.String string, java.lang.String cs) throws java.io.IOException
      Запись текстовых данных в файл
      Parameters:
      file - Файл в который производится запись
      string - Текстовые данные
      cs - Кодировка (возможно null, будет использоваться кодировка по умолчанию)
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • writeText

      public static void writeText​(java.io.File file, java.lang.String string, java.nio.charset.Charset cs) throws java.io.IOException
      Запись текстовых данных в файл
      Parameters:
      file - Файл в который производится запись
      string - Текстовые данные
      cs - Кодировка (возможно null, будет использоваться кодировка по умолчанию)
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • appendText

      public static void appendText​(java.io.File file, java.lang.String string, java.nio.charset.Charset cs, int blockSize, java.util.function.BiConsumer<java.lang.Long,​java.lang.Long> progress) throws java.io.IOException
      Запись текстовых данных в конец файла
      Parameters:
      file - Файл в который производится запись
      string - Текстовые данные
      cs - Кодировка (возможно null, будет использоваться кодировка по умолчанию)
      blockSize - Размер блока копируемых данных (0 и меньше - по умолчанию)
      progress - Функция уведомления копируемых данных (возможно null),
      первый аргумент - кол-во записанных байтов,
      второй аргумент - кол-во всего копируемых данных
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • appendText

      public static void appendText​(java.io.File file, java.lang.String string, java.nio.charset.Charset cs) throws java.io.IOException
      Запись текстовых данных в конец файла
      Parameters:
      file - Файл в который производится запись
      string - Текстовые данные
      cs - Кодировка (возможно null, будет использоваться кодировка по умолчанию)
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • appendText

      public static void appendText​(java.io.File file, java.lang.String string, java.lang.String cs) throws java.io.IOException
      Запись текстовых данных в конец файла
      Parameters:
      file - Файл в который производится запись
      string - Текстовые данные
      cs - Кодировка (возможно null, будет использоваться кодировка по умолчанию)
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • readBytes

      public static byte[] readBytes​(java.net.URL url, int maxSize, int blockSize, java.util.function.Consumer<java.lang.Long> progress) throws java.io.IOException
      Чтение байт данных
      Parameters:
      url - Файл из которого производится чтение
      maxSize - Максимальный объем читаемых данных
      blockSize - Размер блока копируемых данных (0 и меньше - по умолчанию)
      progress - Функция уведомления о прогрессе (возможно null)
      аргумент функции - кол-во прочитаных байтов
      Returns:
      Набор байтов
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • readBytes

      public static byte[] readBytes​(java.net.URL url) throws java.io.IOException
      Чтение байт данных
      Parameters:
      url - Файл из которого производится чтение
      Returns:
      Набор байтов
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • readText

      public static java.lang.String readText​(java.net.URL url, java.nio.charset.Charset cs, int maxSize, int blockSize, java.util.function.Consumer<java.lang.Long> progress) throws java.io.IOException
      Чтение текстовых данных
      Parameters:
      url - Файл из которого производится чтение
      cs - Кодировка (возможно null, будет использоваться кодировка по умолчанию)
      maxSize - Максимальный объем читаемых данных
      blockSize - Размер блока копируемых данных (0 и меньше - по умолчанию)
      progress - Функция уведомления о прогрессе (возможно null)
      аргумент функции - кол-во прочитаных байтов
      Returns:
      Текстовые данные
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • readText

      public static java.lang.String readText​(java.net.URL url, java.nio.charset.Charset cs) throws java.io.IOException
      Чтение текстовых данных
      Parameters:
      url - Файл из которого производится чтение
      cs - Кодировка (возможно null, будет использоваться кодировка по умолчанию)
      Returns:
      Текстовые данные
      Throws:
      java.io.IOException - Ошибка ввода - вывода
    • readText

      public static java.lang.String readText​(java.net.URL url, java.lang.String cs) throws java.io.IOException
      Чтение текстовых данных
      Parameters:
      url - Файл из которого производится чтение
      cs - Кодировка (возможно null, будет использоваться кодировка по умолчанию)
      Returns:
      Текстовые данные
      Throws:
      java.io.IOException - Ошибка ввода - вывода