Чтение удаленного файла с помощью Java

Моим решением является комбинация маркетинга технологические изменения и изменения.

В настоящее время техническая сторона продажи части мешков загаженных продвижений обрабатываются как нормальная woot продажа. Продажа запускается, люди мчатся для покупки, все товары проданы. Те же диаграммы statistcal, используемые для ежедневных продаж, являются используемым мешком загаженных продаж.

существует несколько включенных целей рынка:

  • Заставляют клиентов посещать сайт один раз в день (импульсная покупка). possiblility наблюдения мешка загаженной продажи является причиной/вознаграждением.
  • Сетевой/вирусный/сплетничающий эффект, где клиент видит мешок загаженной продажи, идет, они будут IM/EMail/Telephone их друзья.
  • существует также, что я назвал бы общей "доброй волей". Woot является действительно прохладным местом, потому что он иногда вознаграждает своих клиентов удивительными продажами (мешок дерьма, которое включало ЖК-телевизор)... И его сделанный на ярмарке "сначала прибывает сначала подаваемый" способ.

первые 2, кажется, являются самыми важными. Чистое число посетителей имеет эффект на то, как быстро нормальные соглашения продают (или распродажа). Новые клиенты были традиционно притянуты в значительной степени устно, и клиенты наличия, отправляющие их друзьям для woot.com, являются победой.

, Таким образом... мое решение состоит в том, чтобы изменить доставку продвижения в большее количество лотереи.

Иногда пользователи могут сделать что-то забава видеть, имеют ли они право на мешок дерьма. Что-то забава могла быть глупой флеш-игрой вроде "перфорации обезьяна" или Orbitz, мини-помещает, бейсбол, хоккей. Целью здесь является игра, которой не может написать сценарий бот, таким образом, некоторый значительный уход будет необходим. Цель не состоит в том, чтобы также только наградить мешок дерьма игровым победителям..., но ко всем игровым консолям.

техническое ядро игры - то, что в конце игры запрос выполнен к серверу, который делает "мгновенную лотерею", чтобы определить, выиграл ли пользователь мешок загаженной возможности продаж. Запрос к серверу должен будет включать что-то вычисленное самой игрой (примерно говорящий "наличные деньги хеша"... комплекс, потребление цикла ЦП, вычисление и надо надеяться тот, который трудно воспроизвести). Это должно предотвратить бота от повторного ввода лотереи просто запросить лотерею, server/service.

сама игра может изменяться со временем. Можно сделать игры специального мероприятия для Хэллоуина, рождества, valinties, Пасхи, и т.д. Существует много места для маркетинговых идей забавы, которые могут соответствовать "wootiness" woot.

, Если пользователь побеждает, они могут купить мешки N дерьма (в ограниченном окне времени)..., но они могут также отправить друзей N, время ограничило приглашение купить мешок дерьма (хороший в течение 24 часов). Это обеспечивает супер сильный сетевой эффект... клиенты определенно скажут их друзьям. Или Вы могли также сделать это, поскольку "покупают 1, дают 1"... позволяют клиентам купить до в общей сложности N, но вынудить каждого второго быть поставленным другу. Ключ здесь должен заставить сеть/сплетню произвести абсолютную часть... помогают клиенту сказать мир о замечательности woot.

рекламный материал вокруг мешка загаженного понятия продаж должен будет также быть обновлен. Графики того, как быстро мешок распроданного дерьма больше не релевантны. Что-то вдоль строк, как часто в течение месяца у людей была возможность купить. Сколько людей сказало их друзьям. marterials должен subtley подчеркивать мысль, что ежедневная газета woot посещение является хорошей идеей.

можно также продвинуть heck из того, почему мешок загаженных продаж изменяется. Особенно то, что Вы наняли лучший мешок загаженных консультантов, доступных бесплатно.

19
задан ROMANIA_engineer 17 June 2017 в 19:24
поделиться

4 ответа

Вы не можете сделать это из коробки с ftp.

Если ваш файл находится на http, вы можете сделать что-то вроде:

URL url = new URL("http://q.com/test.mid");
InputStream is = url.openStream();
// Read from is

Если вы хотите использовать библиотеку для работы с FTP вам следует обратиться к Apache Commons Net

23
ответ дан 30 November 2019 в 04:03
поделиться

Чтение двоичного файла через http и сохранение его в локальный файл (взято из здесь ):

URL u = new URL("http://www.java2s.com/binary.dat");
URLConnection uc = u.openConnection();
String contentType = uc.getContentType();
int contentLength = uc.getContentLength();
if (contentType.startsWith("text/") || contentLength == -1) {
  throw new IOException("This is not a binary file.");
}
InputStream raw = uc.getInputStream();
InputStream in = new BufferedInputStream(raw);
byte[] data = new byte[contentLength];
int bytesRead = 0;
int offset = 0;
while (offset < contentLength) {
  bytesRead = in.read(data, offset, data.length - offset);
  if (bytesRead == -1)
    break;
  offset += bytesRead;
}
in.close();

if (offset != contentLength) {
  throw new IOException("Only read " + offset + " bytes; Expected " + contentLength + " bytes");
}

String filename = u.getFile().substring(filename.lastIndexOf('/') + 1);
FileOutputStream out = new FileOutputStream(filename);
out.write(data);
out.flush();
out.close();
9
ответ дан 30 November 2019 в 04:03
поделиться

Вы почти у цели. Вам нужно использовать URL-адрес вместо URI. Java поставляется с обработчиком URL-адресов по умолчанию для FTP. Например, вы можете прочитать удаленный файл в байтовый массив следующим образом:

    try {
        URL url = new URL("ftp://localhost/myTest/test.mid");
        InputStream is = url.openStream();
        ByteArrayOutputStream os = new ByteArrayOutputStream();         
        byte[] buf = new byte[4096];
        int n;          
        while ((n = is.read(buf)) >= 0) 
            os.write(buf, 0, n);
        os.close();
        is.close();         
        byte[] data = os.toByteArray();
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

Однако FTP может быть не лучшим протоколом для использования в апплете. Помимо ограничений безопасности, вам придется столкнуться с проблемами подключения, поскольку для FTP требуется несколько портов. По возможности используйте HTTP, как предлагают другие.

4
ответ дан 30 November 2019 в 04:03
поделиться

Поскольку вы работаете в Windows, вы можете настроить общий сетевой ресурс и получить к нему доступ.

-5
ответ дан 30 November 2019 в 04:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: