【发布时间】:2011-05-22 16:24:03
【问题描述】:
我正在开发一个套接字应用程序,我的应用程序需要通过套接字接收 xml 文件。收到的 xml 文件的大小从 1k 到 100k 不等。我现在正在考虑先将收到的数据存储到一个临时文件中,然后将其传递给 xml 解析器。我不确定这是否是正确的方法。
另一个问题是如果我想按照上面提到的那样做,我应该将文件对象或文件路径传递给 xml 解析器吗?
提前致谢,
问候
【问题讨论】:
我正在开发一个套接字应用程序,我的应用程序需要通过套接字接收 xml 文件。收到的 xml 文件的大小从 1k 到 100k 不等。我现在正在考虑先将收到的数据存储到一个临时文件中,然后将其传递给 xml 解析器。我不确定这是否是正确的方法。
另一个问题是如果我想按照上面提到的那样做,我应该将文件对象或文件路径传递给 xml 解析器吗?
提前致谢,
问候
【问题讨论】:
直接发送给解析器。这就是浏览器所做的。添加临时文件会耗费您的时间和空间,但没有任何实际好处。
【讨论】:
您认为在您拥有的任何输入流周围放置一个 BufferedReader 会起作用吗?它不会把它放到一个临时文件中,但它会让你挂在那个数据上。您可以设置所需的任何大小的 BufferedReader。
您是否编写了您的 XML 解析器?如果你没有,它将接受什么作为参数?如果你确实写了它,你是在问效率吗?也就是说,您的解析器应该要求哪个对象、路径或文件最有效?
【讨论】:
您不必将数据从套接字存储到任何文件。只需将整个DataInputStream 读入一个字节数组,然后您就可以做任何您需要的事情。例如。如果需要,使用 xml 输入创建一个 String 以提供解析器。 (我假设 tcp 套接字)。
如果有前面的数据,则跳过它们以便将实际的 xml 数据提供给解析器。
【讨论】: