Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Как создать файл сразу на ftp? / 6 сообщений из 6, страница 1 из 1
10.08.2017, 14:44
    #39503408
LittleLoya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать файл сразу на ftp?
Доброго времени суток всем. Подскажите, пожалуйста, как такое организовать? Есть некий StringBuilder и его необходимо записать в файл, а сам файл сразу на ftp, минуя запись на диск. Причём если на ftp файл с таким же именем уже есть, то желательно текст дописать в конец (причём желательно не читать его перед этим, если такое конечно возможно).
Код: java
1.
2.
3.
FTPClient ftp = new FTPClient();
ftp.storeFile() // просит уже готовый файл
File file = new File(fileName); // просит адрес файла


Что-то не соображу, как тут поступить. Если возможно, то лучше пример.

Заранее всем спасибо.
...
Рейтинг: 0 / 0
10.08.2017, 15:21
    #39503458
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать файл сразу на ftp?
Apache Commons Net
FTPClientExample - как и ожидалось, есть пример записи в файл на FTP-сервере из InputStream.
Про ByteArrayInputStream читаем в Java SE API .
...
Рейтинг: 0 / 0
10.08.2017, 18:27
    #39503654
LittleLoya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать файл сразу на ftp?
Basil A. Sidorov, спасибо большое, после долгих мучений вроде разобралась, сделала так:
Код: java
1.
2.
            ByteArrayInputStream bais = new ByteArrayInputStream(CopyPictures.txtLog.toString().getBytes());
            ftpClient.storeFile("logData.txt", bais);



Можно ещё один маленький вопрос не по тебе? Как добавить в StringBuilder символ переноса строки? Делаю так:
Код: java
1.
CopyPictures.txtLog.append("Записан файл " + files.get(i).getName() + System.getProperty("line.separator"));


Но почему-то в файле всё в одну строку. Что не так делаю?

Заранее спасибо!
...
Рейтинг: 0 / 0
10.08.2017, 19:37
    #39503690
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать файл сразу на ftp?
LittleLoyaКак добавить в StringBuilder символ переноса строки? Делаю так:
Код: java
1.
CopyPictures.txtLog.append("Записан файл " + files.get(i).getName() + System.getProperty("line.separator"));

System.lineSeparator() ?
Ещё есть приколы "текстовый/бинарный режим передачи" и "смотря чем смотреть". Чтобы не сомневаться - пользуйтесь инструментом, который умеет отображать шестнадцатиричный дамп.
...
Рейтинг: 0 / 0
10.08.2017, 20:06
    #39503707
no56892
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать файл сразу на ftp?
В данном случае нет смысла в system.line separator и подобных, так как файл хранится на фтп, то скорее всего писатель и читатель будут на разных платформах. \n лучшая идея. А так да смотря чем читать)
...
Рейтинг: 0 / 0
11.08.2017, 17:15
    #39504210
LittleLoya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать файл сразу на ftp?
Всем спасибо! Действительно, открываю в блокноте - всё в одну строку, открываю в WordPad-е, разделение на строки есть, но вместо русских букв - кракозябры.

А можно ещё один маленький вопросик, опять не по теме? Дату изменения файла на ftp показывает почему-то на 3 часа меньше, чем текущая системная дата, из-за этого считает, что файл устарел. Понимаю, что это как-то связано с часовыми поясами, но не знаю, как исправить, не привязываясь именно к трём часам. Дату получаю так:
Код: java
1.
2.
3.
    public Date getFileDate(int index){
        return new Date(listFTPFiles.get(index).getTimestamp().getTimeInMillis());
    }


или так:
Код: java
1.
2.
3.
    public long getFileDateMilliseconds(int index){
        return listFTPFiles.get(index).getTimestamp().getTimeInMillis();
    }


Пробовала принудительно время после записи устанавливать ftpClient.setModificationTime(), но он не срабатывает. Ошибку не выдаёт, но и время не меняется у файла. Наверное из-за этого:
Issue the FTP MFMT command ( not supported by all servers ) which sets the last modified time of a file.

Заранее всем спасибо.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Как создать файл сразу на ftp? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]