6
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);

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

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

我的客户端和服务器都在 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());

             }
4

2 回答 2

3

该消息似乎是针对BufferedReader构造的。

首先,我认为您没有做任何“错误”的事情,因为您说代码按预期工作并且消息是“INFO”,而不是“ERROR”甚至“WARNING”。

其次,如果你查看BufferedReader构造函数,你会看到:

BufferedReader(Reader in, int size) 构造一个新的 BufferedReader,提供缓冲区的 size 个字符。

http://developer.android.com/reference/java/io/BufferedReader.html

改用该构造函数,您应该不会看到该消息。

顺便说一句,logcat充满了输出,有些行比其他行更相关。


使用Log.d而不是System.out.println(). 关于System.out:http: //developer.android.com/guide/developing/tools/adb.html

查看标准输出和标准错误

默认情况下,Android 系统将 stdout 和 stderr(System.out 和 System.err)输出发送到 /dev/null。在运行 Dalvik VM 的进程中,您可以让系统将输出的副本写入日志文件。在这种情况下,系统使用日志标签 stdout 和 stderr 将消息写入日志,两者的优先级均为 I。

要以这种方式路由输出,请停止正在运行的模拟器/设备实例,然后使用 shell 命令 setprop 启用输出重定向。这是你如何做到的:

$ adb shell stop $ adb shell setprop log.redirect-stdio true $ adb shell start

系统会保留此设置,直到您终止模拟器/设备实例。要将设置用作模拟器/设备实例的默认设置,您可以在设备上的 /data/local.prop 中添加一个条目。

于 2011-04-18T12:39:52.450 回答
1

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

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

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

于 2011-04-18T12:30:38.633 回答