BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
System.out.println(reader.readLine());
为什么我上面读不到数据,而下面的可以?
byte[] buf = new byte[1024];
int len = 0;
InputStream input = socket.getInputStream();
while((len = input.read(buf))!=-1){
System.out.println(new String(buf,0,len));
}
我在网上看到好多字符串尽量用缓冲流,可以有时候为什么缓冲流得不到数据,而必须用原生的String,求指教
socketstring
System.out.println(reader.readLine());
为什么我上面读不到数据,而下面的可以?
byte[] buf = new byte[1024];
int len = 0;
InputStream input = socket.getInputStream();
while((len = input.read(buf))!=-1){
System.out.println(new String(buf,0,len));
}
我在网上看到好多字符串尽量用缓冲流,可以有时候为什么缓冲流得不到数据,而必须用原生的String,求指教
socketstring
解决方案 »
- 怎么向android发送多点触摸事件(比如我们浏览网页,经常会用两个手指向两边一拉,视图就放大了),MonkeyRunner好像只可以模拟并发送单点触摸和滑动
- 使用ActivityGroup来实现TabHost的效果!请问怎么让程序启动默认显示第一个Activity
- android camera预览画质不清晰
- 关于安装软件,添加文件到安装目录下的问题。
- 手机控制家用电饭锅系统设计思路
- 【求助】
- 刚学android,屏幕底部谈菜单怎么做
- 百度地图路径搜索只有第一次运行显示,返回再进入就不显示了,还有mSearch第一次运行无数据
- 现在还能申请到Google Map V1 map key吗?最近在做Google Map应用,求帮忙申请key,给高分
- 出现一个AVD和真机程序运行不一致的问题
- 请教这种功能是怎么实现的?
- 需求中出现 星期 的需求,怎么搞
System.out.println(reader.readLine());
这个是按行读取必须有换行符 '\n'InputStream input = socket.getInputStream();
while((len = input.read(buf))!=-1){
System.out.println(new String(buf,0,len));
}
这个是字节流的方式,显然能读,读到缓冲区继续循环 直到通道中的流没有了。
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try {
byte[] buffer = new byte[128];
int n = -1;
while ((n = bis.read(buffer)) != -1) {
bos.write(buffer, 0, n);
}
} catch (IOException e) {
e.printStackTrace();
return null;
} finally {
if (bis != null) {
try {
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return bos.toByteArray();
}
能完整的读完IO流。尽量不要用字符流,一行行的读取,需要对方发送\n符号,才能读取。
InputStream input = socket.getInputStream();
while((len = input.read(buf))!=-1){
System.out.println(new String(buf,0,len));
}
能收到数据啊