【发布时间】:2015-02-10 09:43:42
【问题描述】:
我有一个 servlet,我从 InputStream 中获取 XML 格式的表单数据。我能够以 XML 格式检索表单数据,并能够在文件中写入相同的数据。如果我打开文件,我可以看到我的表单数据。
现在的问题是,当我尝试将表单数据附加到字符串缓冲区时,它没有发生。我试过buffer.append()。在该方法之后当我尝试打印字符串缓冲区值时,控制台中没有显示/打印任何内容。
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("html/text");
PrintWriter out = response.getWriter();
out.println("doPost Method is excecuting");
DataInputStream in = new DataInputStream (request.getInputStream());
StringBuffer buffer = new StringBuffer();
File file = new File("reqOutput.txt");
file.createNewFile();
FileWriter writer = new FileWriter(file);
int value;
while ((value=in.read()) != -1) {
buffer.append(value);
writer.write(value);
}
System.out.println("Value is : "+ buffer.toString()); // Nothing is printing
writer.flush();
writer.close();
}
我的代码有什么问题。请提供任何建议。
【问题讨论】:
-
while 循环不会被执行。 StringBuffer 没有问题
-
使用 StringBuilder 代替 StringBuffer。
-
你的 'in.read()' 返回的值是否正确?
-
你检查过控制台吗?如果它进入循环并且您的文件有内容,它应该打印?通过更改输出文件名进行检查。我猜你可能正在检查旧文件
-
是的 read() 正在返回正确的值,我只在 While 循环中将表单数据写入文件。该文件已创建和适当的数据
标签: java inputstream stringbuffer