Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Работа с сетью > Считать файл из ftp |
Автор: Wanderer2019 3.12.2004, 23:26 |
Здравствуйте еще разок! Не знает ли кто нибудь можно ли считать содержимое файла на ftp не копируя его на локальный диск? слышал как то можно создать BufferedReader на удаленный файл, но никак не получается!!! S--O--S .... S--O--S ... S--O--S ... S--O--S ![]() P.S. Зарегистрировался! ![]() |
Автор: Domestic Cat 4.12.2004, 00:35 |
Если ты сам не сохранаешь файл, то на диске он не появится. Очевидно для чтения из ftp используется к-л InputStream, и если этот стрим не пишет на диск, то файл собственно и находится в памяти. Постарайся сформулировать вопрос почетче, проблема в создании стрима или в чем-то еще? |
Автор: igon 4.12.2004, 05:33 | ||
Во второй ссылке, которую давал DomesticCat в топике, так преждевременно тобой покинутом (вместе с этим вопросом ![]()
А уж из bis методом read() можешь читать и сохранять куда угодно |
Автор: Domestic Cat 4.12.2004, 06:27 | ||
Перекинул я, тк. по правилам - один вопрос на одну тему ![]() |
Автор: Wanderer2019 4.12.2004, 14:56 |
OKay! Предположим имеется некий ftp Сервер на котором в дериктории dir находятся текстовые файлы, иформация в которых меня и интересует. Я знаю имя файла. Коннект к ftp средствами commons net. Вопрос: как считать информацию из этого файла (прямо с ftp, не делая копию на локальном диске)? или это не возможно и объязательно нужно копировать файл на HDD? если у кого есть какие нибудь примеры!!!! Всем спасибо! Добавлено @ 14:58 да забыл сказать URL не совсем подходит т.к. на ftp стоит проверка подлинности пользователя! или можно и с помощью URLConnection входить по паролю и логину? |
Автор: igon 5.12.2004, 04:39 | ||||
За повторение вопроса - спасибо ![]() После моего ответа проблема осталась? ![]()
в
разве не логин и пароль? |
Автор: Wanderer2019 5.12.2004, 15:38 |
Вариант конечно не плохой. Спасибо! А возможно сделать что либо подобное через FTPClient? |
Автор: igon 5.12.2004, 21:29 | ||
FTPClient не входит в SDK 1.4, которым я пользуюсь - так что, увы...![]() Посмотри здесь: http://www.enterprisedt.com/downloads/ftp/doc/com/enterprisedt/net/ftp/FTPClient.html (после беглого просмотра) Похоже, это подойдет:
|
Автор: Aver91 24.12.2009, 18:43 | ||
Всем добрый вечер, решил задать небольшие вопросы касаемо подключений к ftp здесь, чтобы не плодить одинаковых тем.
суть проблемы: я создаю подключение к серверу для общения с помощью first. в таком случае сетевая карта уже занята подключением. как сделать 2ое подключение? есть ли смысл использовать URL? ЗЫ: в программе нельзя использовать дополнительные модули типа org.apache.commons.net.ftp работаю в среде eclipse для J2SE |
Автор: Aver91 25.12.2009, 20:55 | ||||||
ну вот я собственно и не добавил их. написал за тем, чтобы не предлагали ссылки на подобные модули порт я просто так ему задал. с пассивным режимом я плохо понимаю, поэтому решил делать передачу в активном. на 20 порт сервер дает положительный ответ когда посылаю ему команду PORT Добавлено через 12 минут и 1 секунду хотя сейчас я пассивный попробовал и разобрался как порт взять из ответа сервера. но суть проблемы остается. у меня второе подключение не создается |
Автор: Egik2 25.12.2009, 21:57 | ||
Wanderer2019, ты sun.net.ftp.FTPClient имел в виду? Тогда простейший пример кода:
|
Автор: ICEMAN3141592 29.12.2009, 01:15 |
Привет всем, вопрос туда же... Есть код (отрывочек) String host = "ftp.yandex.ru"; String user = "anonymous"; String password = "2f9781da46"; System.out.println("Connecting to host " + host); m_client = new FtpClient(); m_client.openServer(host); System.out.println("Connecting to host " + host); m_client.setConnectTimeout(2000000); m_client.login(user, password); System.out.println("User " + user + " login OK"); getFileSize(m_client, "1.jpg"); System.out.println(m_client.welcomeMsg); m_client.cd(sDir); System.out.println("Directory: " + sDir); m_client.binary(); System.out.println("Success."); --------------------------------------------------------------------------------------------------------------------------------------------------- так работает, а вот host = "ftp.filehoster.ru"; user = "user219611"; password = "2f9781da46"; то уже нет... пишет, что время подсоединения вышло, но я жчерез проводник захожу и все нормально, хочу скачать файл 1.jpg и не фига... Пожалуйста |
Автор: Aver91 2.1.2010, 23:16 |
вопрос с подключением 2-го сокета решен. возник другой: как лучше информацию из входящего потока в байтовом виде записать в файл? через байтовый массив? и считывать например из потока по 200 байт и писать их в файл? |
Автор: LSD 4.1.2010, 12:38 |
Лучше по 4 -16 килобайт. |
Автор: Aver91 6.1.2010, 21:10 |
LSD, спасибо за помощь, решил обойтись без массива и писать напрямую в файл. записывание байтов прерывается, когда файл достигает размера, который выслал сервер командой SIZE. проблема вроде бы как решена |
Автор: gochu 27.11.2010, 13:40 | ||
Доброго времени суток! У меня следующая проблема. На ftp-сервере лежит текстовый файл, суть плоская база даный, состоящаю из строк. Каждая строка имеет 8 (первых) однохначноиденетифицирующих ее симовлов. ... 00000576 06 140 12 Disboscatore 32 00002680 06 140 3 Disboscatore 32 00004285 06 140 26 Disboscatore 32 00004315 06 100 5 Disboscatore 32 00004380 06 140 15 Disboscatore 32 ... Задача: по введенным 8 символам, провести поиск и выведение на екран строки, где этот код и находиться. Проблема.... telnet не копирует надлежащим образом символы перевода строки на hdd, что, на мой взгяд, есть первым этапом решения задачи. Вторым, я надеюсь, после решеиня первой, будет поиск по скопированому тестовику строки и ее вывод,
Буду благодарен за помощь |