2012-06-16 1 views
1

Я знаю, что локально можно получать содержимое файла по строкам. так же, какВозможно ли постоянно получать содержимое файла с удаленного сервера

Scanner s = new Scanner(new File("D:\\Users\\qding\\Desktop\\spy.log")); 
    while (s.hasNextLine()) { 
     String line = s.nextLine(); 
     System.out.println("[Method Server] " + line); 
} 

Можно ли получить содержимое файла с удаленного (Windows/Linux)?

Кроме того, на удаленном компьютере файл был файлом журнала, и он обновляется всегда. Итак, второй вопрос в том, можно ли непрерывно хранить контент (с несколькими потоками?)?

ответ

1

A1. Да, можно получить содержимое файла из удаленной системы, если оно доступно по любому протоколу.

A2. В системах Unix для чтения содержимого файла, который постоянно изменяется, у нас есть команда tail -f .... Обратитесь к File Monitoring. И чтобы читать такие файлы по сети, вам определенно требуется помощь Threads для ожидания и чтения обновлений. У Apache есть пользовательские tail реализации, которые могут вам помочь.

Вы можете обратиться к a similar posting, чтобы получить подробные предложения и обсуждения.

Update:
A2: Для окон, есть графический инструмент Tail for Win32 третья сторона, но никогда не работал на нем.
Вы также можете обратиться к дополнительным предложениям по адресу Windows ... equivalent of “tail -f”?.

+0

Ravinder, спасибо много, это полезно, особенно реализация Apache хвоста. Emm ..., есть ли какие-либо ссылки о постоянном содержимом файлов из удаленных окон? –

+0

Что я имею в виду, на Linux у нас есть _tail -f_, но на окнах нам нужно реализовать эту функцию самостоятельно? –

+0

@ShrekDing Я обновил свой ответ с другими ссылками на эквивалентные версии Windows 'tail -f'. –

0

Ну позвольте мне попытаться ответить на этот вопрос,

  1. Я предполагаю, что вы использовали гнездо, для связи с сервером.

  2. Использование socket.shutdownOutput() («гнездо» в socket.shutdownOutput() определяет адрес и порт сервера NOS) on the client side, так как вам не нужно что-то написать, но нужно держать чтение с сервера.

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

  4. Теперь на стороне клиента использовать эту ссылку ниже, чтобы прочитать из "файла" на сервере

    http://www.java-samples.com/showtutorial.php?tutorialid=215