Java 从服务器读取txtfiles停止“;中途;

Java 从服务器读取txtfiles停止“;中途;,java,Java,我希望得到一个答案,这真的很困扰我。。。我正在使用扫描仪读取服务器上的TXT文件。到目前为止,我只想做一个System.out.println,其中包含文本文件的内容,服务器上的每一行都是我屏幕上的新行 我有一个带有服务器的arrayList(服务器的数量有时会有所不同。然后,我使用通过arrayList的for循环,对于每个服务器,我想读取arrayList中url中的文本文件。我的问题是,它只读取和打印大约一半的第一个文本文件,然后它似乎停止或冻结了…没有错误消息或任何东西 我用来获取服务器

我希望得到一个答案,这真的很困扰我。。。我正在使用扫描仪读取服务器上的TXT文件。到目前为止,我只想做一个System.out.println,其中包含文本文件的内容,服务器上的每一行都是我屏幕上的新行

我有一个带有服务器的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); }

我希望这是有意义的:)

问题可能在于文本文件编码。hasNext()Scanner类的方法有时返回false,当它到达不同编码的某些字符时,循环就会停止。您可以通过检查文本文件中的行来轻松检查这一点,此时应用程序停止处理。

如果代码冻结,看起来服务器没有向您发送数据,那么Scanner只会停止它在那里等着它


您可以尝试将文件下载到tmp位置,然后读取它。

您的代码不可读,并且明显存在错误。您能先修复它吗?