Java BufferredWriter可以写上千行

Java BufferredWriter可以写上千行,java,Java,我从sql中获取结果,并使用BufferdWriter将每条记录作为一行写入文件。记录的数量将以千(超过40000个字符)为单位 代码: Iterator it=details.Iterator(); while(it.hasNext()){ detail=it.next(); sbRec=格式字符串文件(细节); m_logger.info(sbRec.toString()); strRec=sbRec.toString(); 写(strec); 换行符(); } bw.close(); 现

我从sql中获取结果,并使用BufferdWriter将每条记录作为一行写入文件。记录的数量将以千(超过40000个字符)为单位

代码:
Iterator it=details.Iterator();
while(it.hasNext()){
detail=it.next();
sbRec=格式字符串文件(细节);
m_logger.info(sbRec.toString());
strRec=sbRec.toString();
写(strec);
换行符();
}
bw.close();
现在我的问题是:
此代码给出了正确的结果。但在每4096个字符之后,结果文件中将出现一个意外的新行字符。我可以知道这是为什么吗?我如何解决这个问题?

太好了,现在怎么办?我猜你遇到了一个问题?问题是什么?@OP不要因为你的问题被搁置而气馁。请随意[]浏览您的帖子,了解更多详细信息(不要忘了在末尾添加带有
的句子),此帖子将很快重新打开。对于给您带来的不便,我们深表歉意。现在我编辑了我的问题。请看一看并回复您宝贵的建议。新行是用bw.newLine()编写的。你有连续的两条新线路吗?如果是,您是否检查sbRec.toString()是否以新行结尾?
Iterator<SyncDetail> it = details.iterator();
while (it.hasNext()) {
    detail = it.next();
    sbRec = formatStringFile(detail);
    m_logger.info(sbRec.toString());
    strRec = sbRec.toString();
    bw.write(strRec);
    bw.newLine();
}
bw.close();