Exemple #1
0
  /**
   * Выгрузить файл на удаленный клиент с локальной директории текущего запроса.
   *
   * @param outputStream - выходный поток данных.
   * @param fileName - имя выгружаемого файла.
   * @throws SessionInitPathException
   * @throws IOException
   */
  public void upload(OutputStream outputStream, String fileName) throws IOException {
    // check: Допустимость аргументов
    Checker.nullArgumentCheck(outputStream, "Argument outputStream is null.");
    Checker.nullArgumentCheck(fileName, "Argument fileName is null.");

    // Ищем файл с таким именем в списке выходных файлов модуля
    IOFile outputFile = null;
    outputFile = search(fileName, TypeIOFile.OUTPUT);
    Checker.nullArgumentCheck(outputFile, "File not found. " + fileName);

    // Открываем потоки данных
    DataInputStream fileStream =
        new DataInputStream(new BufferedInputStream(new FileInputStream(outputFile)));
    DataOutputStream responseStream = new DataOutputStream(new BufferedOutputStream(outputStream));

    // Перенаправляем поток в файл
    RWUtils.redirect(fileStream, responseStream);

    // Закрываем потоки данных
    fileStream.close();
    responseStream.close();

    // Обновление статуса
    outputFile.setStatus(StatusIOFile.UPLOADED);
    updateStatus();
  }
Exemple #2
0
  /**
   * Загрузить файл с удаленного клиента в локальную директорию текущего запроса.
   *
   * @param inputStream - входной поток данных.
   * @param fileName - имя загружаемого файла.
   * @throws SessionInitPathException
   * @throws IOException
   */
  public void download(InputStream inputStream, String fileName) throws IOException {
    // check: Допустимость аргументов
    Checker.nullArgumentCheck(inputStream, "Argument inputStream is null.");
    Checker.nullArgumentCheck(fileName, "Argument fileName is null.");

    // Ищем файл с таким именем в списке входных файлов модуля
    IOFile inputFile = null;
    inputFile = search(fileName, TypeIOFile.INPUT);
    Checker.nullArgumentCheck(inputFile, "File not found. " + fileName);

    // Открываем потоки данных
    DataInputStream requestStream = new DataInputStream(new BufferedInputStream(inputStream));
    DataOutputStream fileStream =
        new DataOutputStream(new BufferedOutputStream(new FileOutputStream(inputFile)));

    // Перенаправляем поток в файл
    RWUtils.redirect(requestStream, fileStream);

    // Закрываем потоки данных
    requestStream.close();
    fileStream.close();

    // Обновление статуса
    inputFile.setStatus(StatusIOFile.DOWNLOADED);
    updateStatus();
  }