我希望得到一个答案,这真的让我很烦恼......我正在使用扫描程序从服务器上的txtfile读取。我要做的就是使用textfile的内容做一个System.out.println,服务器上的每一行都是我屏幕上的新行。
我有一个带有服务器的arrayList(服务器的数量不时有所不同。然后我使用a循环遍历arrayList,对于每个服务器,我想读取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)
问题可能出在textfile编码中。 Scanner类的hasNext()方法有时会返回false,当它到达不同编码的某些字符时,你的循环就会停止。您可以通过检查应用程序停止处理的文本文件中的行来轻松检查这一点。
答案 1 :(得分:0)
如果代码冻结看起来像服务器没有向您发送数据,那么扫描仪只是坐在那里等待它。
您可以尝试将文件下载到tmp位置然后阅读它。