我从HttpUrlConnection(connection.getInputStream())接收到一个InputStream,并使用DocumentBuilder(documenbtBuilder.parse(InputStream))解析输入流。在解析之前,我想将接收到的数据写入日志文件。当我这样做的时候,我得到了组织。xml。萨克斯。SAXParseException:解析方法中出现意外的文档结束异常。如果不写入文件,我的代码可以正常工作,但我需要记录接收到的数据。
请在下面找到写入文件的代码:
final InputStream input = connection.getInputStream();
writeLogInfo(input);
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(input);
//Method that writes tito log file.
private void writeLogInfo(InputStream input){
OutputStream os = new FileOutputStream("mylogfile.txt");
byte[] buffer = new byte[1024];
int byteRead;
while((byteRead = input.read(buffer)) != -1){
os.write(buffer,0,byteRead);
}
os.flush();
os.close();
}
我怀疑这是因为多次使用InputStream,因为当我不涉及writeLogInfo()时,代码会工作。我没有关闭代码中任何地方的inputhtml" target="_blank">stream。我做错了什么?
您确定文件大小在1024字节以下吗。如果不是,为什么不将“inputstream”放入BufferredInputstream,并创建字节数组。。
BufferedInputStream bin= new BufferedInputStream(new DataInputStream(input));
byte[] buffer= new byte[bin.available()];
bin.read(buffer);
os.write(buffer);
......
......
bin.close();
......
当您将内容写入文件时,您将到达输入流的末尾。
因此,在这之后,当您尝试解析时,您会得到异常。
在将inputstream传递给documentbuilder之前,需要在inputstream上使用标记
和重置
方法。
此外,首先需要检查输入流是否支持标记。
这是javadoc,供您参考
http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html
问题内容: 我有一个pandas数据框。我想按升序打印其列之一的唯一值。这就是我的做法: 问题是我得到了输出。 问题答案: 从iterable中返回一个新的排序列表。 码 输出值
对于一个学校项目,我们正在建立一个网站和应用程序。我们使用一个phpmyadmin数据库为我们的网站,我们正试图创建一个登录我们的应用程序(android studio,Java)使用这个数据库。因此,我们试图在android studio中使用http post请求到我们的Web服务器,从而Java到PHP。但是,我没有很多编码方面的经验,也不能真正在网上找到我要找的东西。 那么,我该从哪里开始
问题内容: 这是我的代码,它有效!但我希望能够根据名称,大小,修改日期等对文件列表进行排序 问题答案: 您可以定义许多不同的类来进行不同的比较,例如: 然后,您只需将它们换出: 要么
我想收集数据,并在一个加密的文件中写入使用公钥(在Android中)。然后将文件发送到PC机读取。在我的PC中,我也需要创建一个应用程序来解密文件。我该如何做以及如何安全地共享密钥?
多年来,我一直在使用Tomcat、JBoss、Glassfish等。在这些容器中,我使用了Log4j、JDK日志等,非常简单。 我很难从Weblogic 12c中的应用程序中获得任何日志记录。日志被写入stderr,而不是日志文件。 在管理控制台日志记录实现:JDK严重性级别:INFO 如果我按照Log4J Weblogic配置过程配置Log4J,行为是相同的。
我有一个logger配置,它基本上将根记录器的所有日志写入一个基本日志文件。我总是使用此处。 对于我想记录的一些特定事件,请使用不同的文件。我怎么能在属性文件中配置这样一个记录器(例如给它一个名字,然后我可以从代码中引用)?