225.140.12.200 - - [22/Jul/2005:20:05:33 -0400] "GET /images/tt2.gif HTTP/1.0" 200 4280 "-" "VK-Vf900/1.0 UP.Browser/6.2.3.4 (GUI) MP/2.0" "-" "13711118888"以后这一段在utredit里只是显示在一行的.我在JB中用readline()读入然后打印出来也能打全这一行.关急键等我来解析这一行时,出了问题,.只能解析这这么,"225.140.12.200 - - [22/Jul/2005:20:05:33 -0400] "GET /images/tt2.gif HTTP/1.0" 200 4280"余下的就没了..后在我在DEBUG模式下一看,readline() 只读入了.前面那么多.可为什么我在正常模式下能打印全呢?(但实际解析时后面是没有的)
为什么呢?我有什么办法,才能把它们全部读全啊..类似上面的一段文件,我有若干行.

解决方案 »

  1.   

    READLINE()语句是 将缓冲区内的数据写入内存的,例如以键盘的输入流构建 BUFFEREDREADER BF=NEW BUFFEREDREADER(NEW INPUTSTREAMREADER(SYSTEM。IN))时,当键盘敲下回车键时 ,STRING TEMP=BF。READLINE()。TEMP接受BF的写入。否则键盘的输入一直保存在缓冲内,不遇到“\r\n”,READLINE()是不执行,而是处于一直等待着。而且,“\r\n”字符被忽略。另外,默认的缓冲区大小(就是内置的字节数组大小,BYTE B[])应该是1024或2048,(忘了,是可以设置的。)。而FLUSH()方法就是将缓冲区内的字节数组强制写入 变量。你看看你的语句是“\R\N”字符没处理好,还是输入超出缓冲区 大小。