NNTP客户端 - Java - 下载文章随机下载3个额外的垃圾字节

时间:2010-02-20 17:29:13

标签: java nntp

我写了这个NNTP客户端...我试图将它作为一个更大的项目的一部分,但似乎downloadArticle(字符串msgID)正在下载一些额外的字节,但随机。例如,有一次我将运行应用程序,它将在CR / LF之后插入3个垃圾字节。我将再次运行该应用程序,它不会下载这些字节。我已经解决了这个问题而且它不在yenc解码器等中...它肯定在这个NNTPclient类中。

我发布了全班的完整性。代码在这里: http://www.pastebin.com/m214131cc

1 个答案:

答案 0 :(得分:1)

你有很多关于换行的复杂且因此容易出错的逻辑 - 错误几乎可以肯定在那里。你似乎也使用了一个不一致的(和不一致命名的In / OutputStreams和Readers / Writers混合。

问题是:你真的需要这一切吗?我很确定你没有。该类似乎所做的就是将InputStream的内容写入文件。为此,您不需要考虑换行符(或者实际上是字符) - 只需通过byte[]缓冲区传输原始字节(或者只使用Apache commons-io的IOUtils类)。

或者如果您需要规范化换行符,请使用BufferedReader.readLine()而不是编写您自己的,容易出错的换行符识别逻辑。