1

ファイルの内容を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) からファイルの内容を取得することはできますか?

また、リモートでは、ファイルはログ ファイルであり、常に更新されます。2番目の質問は、コンテンツを連続してファイルすることが可能かどうかです (複数のスレッドで?)?

4

2 に答える 2

1

A1 . はい、任意のプロトコルでアクセスできる場合、リモート システムからファイル コンテンツを取得することは可能です。

A2 . UNIX システムでは、継続的に変化するファイルの内容を読み取るために、tail -f ...コマンドがあります。ファイル監視を参照してください。ネットワーク経由でそのようなファイルを読み取るには、更新を待って読み取るためにスレッドの助けが必要です。Apache commons にはtail、役立つカスタム実装があります。

詳細な提案や議論については、SOの同様の投稿を参照できます。

更新:
A2 : Windows の場合、Win32 用のサードパーティの GUI ツールTailがありますが、私はそれに取り組んだことはありません。
Windowsでさらにいくつかの提案を参照することもできます...「tail -f」と同等ですか? .

于 2012-06-16T14:46:21.453 に答える
0

さて、これに答えてみましょう。

  1. サーバーとの通信にソケットを使用したと仮定しています。

  2. socket.shutdownOutput()(socket.shutdownOutput() の "socket" は、サーバーのアドレスとポート番号を識別します)を使用on the client sideします。何かを書き込む必要はありませんが、サーバーから読み取り続ける必要があるためです。

  3. サーバー部分も処理している場合は、サーバーへのすべての要求が独自のスレッドで実行されることを確認してください。

  4. クライアント側では、以下のリンクを使用してサーバー上の「ファイル」から読み取ります

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

于 2012-06-16T14:43:04.567 に答える