bufferedreader.readline 读取内容不完整

D_lady 2013-12-23 07:02:49
源码:
readline:
	
final String com = "采集数据命令";
BufferedReader br = hs.getStrResultBuffere(com);
String line = "";
String regEx2 = "^([\\s]+[\\w]+):([\\w\\W]+)$";
while((line = br.readLine())!=null){
System.out.println("LINE:"+line);
Matcher m = Pattern.compile(regEx2).matcher(line);
if(m.find()){
System.out.println(m.group(1).trim());
System.out.println(m.group(2).trim());

}

}

read
			char[] arr = new char[512];
int read;

while (true) {

read = br.read(arr, 0, arr.length);

if (read < 0) {
break;
}

sb.append(new String(arr, 0, read));
}

用readline一行一行读,读不到完整的内容。后来用BufferedReader.read()方法读取所有内容可以取到完整结果,这是为什么?因为我一定要用到readline方法作处理,这个问题应该怎么解决?
...全文
2958 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gloomyfish 2013-12-24
  • 打赏
  • 举报
回复
引用 2 楼 UDBuilder 的回复:
readline会一直阻塞直到读到换行符,或者直到关闭br,你读取的源数据中有没有换行符
+1
D_lady 2013-12-24
  • 打赏
  • 举报
回复
hs.getStrResultBuffere(String str) 执行会得到一个流,在把流转成BufferedReader对象返回。
D_lady 2013-12-24
  • 打赏
  • 举报
回复
引用 2 楼 UDBuilder 的回复:
readline会一直阻塞直到读到换行符,或者直到关闭br,你读取的源数据中有没有换行符
有换行符
D_lady 2013-12-24
  • 打赏
  • 举报
回复
引用 1 楼 huxiweng 的回复:
你是什么类型的文件?
不是读文件,读文件没问题
UDBuilder 2013-12-24
  • 打赏
  • 举报
回复
readline会一直阻塞直到读到换行符,或者直到关闭br,你读取的源数据中有没有换行符
sliwey 2013-12-24
  • 打赏
  • 举报
回复
BufferedReader 有close 或者flush吗
D_lady 2013-12-24
  • 打赏
  • 举报
回复
得到的结果是后换行符的,经过测试在hs.getStrResultBuffere(String str)方法中测试,用输出readline的结果发现能取到全部结果,但是,为什么把BufferedReader对象返回后,再遍历取不到全部结果,如:BufferedReader br = hs.getStrResultBuffere(com); //不完整数据
teemai 2013-12-23
  • 打赏
  • 举报
回复
你是什么类型的文件?

50,527

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧