2012-02-14 4 views
0

私はこれに答えることを望んでいます。これは本当に私を悩ましています...サーバ上のtxtfileからスキャナを読み取っています。そして、私がしたいのは、テキストファイルの内容でSystem.out.printlnを実行し、サーバー上の各行を画面上の新しい行にすることです。サーバからのtxtファイルの読み込みが「中途半端」で終了する

私はサーバを持つarrayListを持っています(サーバの数は時々異なります)。次に、arrayListを経由するforループと、arraylistのURLにあるテキストファイルを読み込みたいサーバごとに使用します。私の問題は、最初のテキストファイルの約半分しか読んでいないことです。エラーメッセージも何も表示されません。

for(int x=0;x protected void processLine(String aLine){ ' 
// System.out.println("processLine körs"); 
//use a second Scanner to parse the content of each line Scanner scanner = 
new Scanner(aLine); scanner.useDelimiter (System.getProperty("line.separator")); 

if (scanner.hasNext()){ //System.out.println("scanner.hasNext()"); 

// String[] str = scanner.next().split(":"); String str = scanner.next(); log(str); } } 

private static void log(String tmp){ 

//if (tmp.length>1){ // if (tmp[0].equals("url0")){ // pilotServer = new 
PilotServer(tmp[1]); // addServer(pilotServer); // } // } 
System.out.println("UsersOnline :"+tmp); } 

私は、これは理にかなって願っています:)

+0

あなたのコードは読めないので、間違いがあります。最初に修正できますか? –

答えて

0

テキストファイルのエンコーディングに問題がある可能性があります。 ScannerクラスのhasNext()メソッドは、異なるエンコーディングのいくつかの文字に達し、ループが停止するだけで時々falseを返します。アプリケーションが処理を停止するテキストファイルの行を確認することで、これを簡単に確認できます。

0

コードがちょうど凍っているような場合は、サーバーからデータが送信されないので、スキャナは待機しています。

ファイルをtmpの場所にダウンロードして読み込めます。

関連する問題