0

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

为了完整起见,我发布了整个班级。代码在这里: http: //www.pastebin.com/m214131cc

4

1 回答 1

1

你有很多复杂的,因此容易出错的关于换行符的逻辑——错误几乎肯定在某个地方。您似乎还使用了不一致的(并且名称不一致的 In/OutputStreams 和 Readers/Writers 组合。

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

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

于 2010-02-20T17:44:08.283 回答