作者calais007 (浅水中)
看板java
标题Re: [JSP ] readline时会停住的问题…
时间Wed Jul 20 19:39:46 2011
※ 引述《ryannork (下雨天)》之铭言:
: 标题: [JSP ] readline时会停住的问题…
: 时间: Sun Jul 17 15:45:56 2011
:
:
※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 122.125.57.131
: → calais007:我猜你的input不存在CR/LF,你可以印每个byte出来看看 07/19 15:19
: → calais007:你可以看看最後有没有0D或是0A这两个byte 07/19 15:21
: → ryannork:我用getbytes("UTF-8")得到 [B@1e3a0ec 这值次出来都不一 07/20 10:48
: → ryannork:之前也试过WA_in(input+"\r\n")但是结果是一样的 = = 07/20 10:52
: → calais007:那就不要用readLine,看你来是最後没有od和oa所以卡住了 07/20 14:31
: → calais007:打错,是0d或0a 07/20 14:32
: → ryannork:不好意思,那请问可以用什麽代替? 07/20 17:46
先跟你说几个观念
1.
你印出来的byte每次会不一样是因为你去印byte的referece
请你印byte是要你一个个byte印
当你getBytes後return回来是一个array
你应该是要写个for loop去印整个array的内容
你印个reference没有用
VM每次给array的记忆体位置都不一样
你印当然都不一样
不懂你印reference干什麽
2.
得到String的方法不是只有readLine
万一你好死不死的整个文章都没有0a或0d不就卡了
你可以从byte读
放到string buffer
再转成string
StringBuffer strbuf = new StringBuffer();
byte buf[] = new byte[256];
while( WA_Out.read(buf) != -1)
{
strbuf.append(buf);
}
// compare your string with stringbuffer
if ( !strbuf.toString().equals(output) )
{
// .....
}
如果你的input有多行的话...请自行处理
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 180.176.8.219
1F:→ ryannork:呃…在read()这行出现无法读取byte[],只能读charBuffer 07/21 19:39
2F:→ ryannork:我就改用char[],执行後一样停在了read() 07/21 19:47
3F:→ ryannork:感谢你的回答… 07/23 16:05
4F:→ ryannork:我把原本一个回圈做三件事改三个回圈做就读得到了@@ 07/23 16:07