Как я могу получить доступ к файлу, существующему на удаленной машине? - PullRequest
2 голосов
/ 19 августа 2011

Я хочу получить доступ к файлу (чтение), который существует на удаленной машине из моего кода JAVA, что мне нужно для этого сделать?просто IP машины и расположение файла или мне нужно что-то еще?

Спасибо

Ответы [ 3 ]

3 голосов
/ 19 августа 2011

Есть несколько вариантов:

  • Через «сопоставленный» каталог с помощью SMB / Samba на удаленной машине, и вы можете затем получить доступ к файлу, используя обычный класс File.

  • Через веб-сервер, где доступ для чтения проще (если вам нужен доступ для записи, вы смотрите на что-то вроде WebDAV).Это требует использования протокола HTTP в вашем коде.

  • Через FTP или SFTP сетевые протоколы для доступа к файлу.Это, очевидно, требует использования (S) классов FTP для доступа к файлу.

Первый вариант проще всего с точки зрения кодирования.

2 голосов
/ 19 августа 2011

Если код Java и удаленный файл находятся на компьютерах с Linux, вы также можете выбрать NFS.

  1. Как всегда, вам нужно запустить сервер, который обслуживает файл - вам нужен nfsd для совместного использования каталога, содержащего этот файл, на удаленном компьютере.
  2. На компьютере, где находится ваш код Javaзапустится, смонтируйте общий nfs

Здесь - краткое введение по использованию nfs в Ubuntu.

Если вы предпочитаете FTP / HTTP, вам будет интереснов Apache commons vfs библиотека, которая поддерживает множество протоколов, включая FTP, SFTP, HTTP и т. д.

1 голос
/ 19 августа 2011

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

Предполагая модель клиент-сервер , у вас есть несколько вариантов на удаленной (серверной) стороне.Прежде всего, вы можете спроектировать свой собственный протокол, написать сервер, развернуть его на удаленном компьютере и написать клиент (на Java), который будет взаимодействовать с сервером, используя разработанный протокол.Однако существует множество готовых решений (протоколы + серверы + клиентские библиотеки Java).Три протокола, которые приходят на ум прямо сейчас: TFTP , FTP и SMB .

Если ваша цель проста, я рекомендую TFTP: естьявляются бесплатными TFTP-серверами для UNIX, Windows и Mac OS X, а на стороне клиента есть Apache Commons Net библиотека Java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...