将数据库内容写出到.txt文件中,为什么我这样写不进去呢,文件总是空??
public void guideFile(HttpServletRequest request,HttpServletResponse response,CLS_VO_NoteQuestionTemplate_Query_I voTemplateId) throws 
IOException, FileUploadException{
		String fileName = voTemplateId.getId() + ".txt" ;
		File txtFile = new File(fileName);//配置路径
		//写流文件到前端浏览器
		ServletOutputStream out = response.getOutputStream();
		//设置一个报头,用于提供一个推荐的文件名,并强制浏览器显示保存对话框
		response.setHeader("Content-disposition", "attachment;filename=" + fileName);//file
//		BufferedInputStream  bis = null;
		OutputStream  bos = null ;
		byte[] buff = new byte[2048];
		try {
			bos = new BufferedOutputStream(out);
			CLS_VO_Result Result = boQuestionTemplate.query(voTemplateId);
			Collection<CLS_VO_NoteQuestionTemplate> collection = (Collection<CLS_VO_NoteQuestionTemplate>) Result.getContent();
			for (CLS_VO_NoteQuestionTemplate clsVONoteQuestionTemplate : collection) {
				List<CLS_VO_NoteQuestionTemplate_Question> questionList = clsVONoteQuestionTemplate.getQaList();
				for (CLS_VO_NoteQuestionTemplate_Question voQuestionTemplateQuestion : questionList) {
					String Question = voQuestionTemplateQuestion.getQuestion();
						bos = new FileOutputStream(txtFile);
						buff = Question.getBytes();
						bos.write(buff);
				}
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			if(bos != null){
				bos.close();
			}
		}
	}
------解决方案--------------------write后面加个flush试下
------解决方案--------------------也没有抛异常么。。。
------解决方案--------------------你用的是new BufferedOutputStream(out); 应该是在缓存里面没有flush
------解决方案--------------------没有flush
------解决方案--------------------楼主你在循环内部进行:
bos = new FileOutputStream(txtFile);
buff = Question.getBytes();
bos.write(buff);
这个不太妥当,意味着后面的会不断覆盖掉前面的,所以建议在最前面就把 FileOutputStream 准备好。
至于flush(),因为你finally中有使用 close(),应该不是问题。
------解决方案--------------------
有中文的话不能用字节流,换个字符流试下print流不错
------解决方案--------------------
中文可以用字节流啊,不会出现乱码