错误使用BufferedReader

adr*_*ian 6 sockets client android bufferedreader

s=new Scanner(new BufferedReader(new InputStreamReader(this.clientSocket.getInputStream())));

        while(s.hasNext()){
             System.out.println("Am intrat in bucla s:");
             longitude=Integer.parseInt(s.next());
             System.out.println("Valoare longitudine:"+longitude);
             latitude=Integer.parseInt(s.next());
             System.out.println(latitude);
Run Code Online (Sandbox Code Playgroud)

我正在使用上面的行从客户端 - 服务器连接读取一些数据;这是服务器端.数据在扫描仪中读取,之后我尝试显示它,但是当我查看logcat时我什么都没有显示但是这个例外:

04-18 00:07:56.138:INFO/global(295):BufferedReader构造函数中使用的默认缓冲区大小.如果需要8k-char缓冲区,最好是明确的.

我的客户端和服务器都在android上!有谁知道我做错了什么?

这是我如何读取数据,我发送纬度和经度,我假设是空格分隔,奇怪的是有时候工作:

        Cursor c=db.getAllData();

           if(c.moveToFirst()) 
             {
              do{

                  longitude=Integer.parseInt(c.getString(1));
                  out.println(longitude);
                  latitude=Integer.parseInt(c.getString(2));
                  out.println(latitude);

              }while(c.moveToNext());

             }
Run Code Online (Sandbox Code Playgroud)

sud*_*ode 1

您的数据是否以空格分隔?如果没有,您将需要为您的扫描仪指定分隔符。

您是否有一些未显示的异常处理代码...例如,如果 parseInt 失败则隐藏 NumberFormatException?

当您调试此问题时(除非您可以附加调试器),您可以在接受新客户端连接以及进入和退出工作线程时等时间点记录消息。当您认为自己正在接收数据时,这可能会帮助您了解是否已扫描完数据。