Java bufferedWriter写入的内容多于馈送的内容
我正在尝试读取一些数据并将其写入数据库,我有一个代码如下:Java bufferedWriter写入的内容多于馈送的内容,java,bufferedwriter,Java,Bufferedwriter,我正在尝试读取一些数据并将其写入数据库,我有一个代码如下: try { // Assume default encoding. FileWriter fileWriter = new FileWriter(fileName); // Always wrap FileWriter in BufferedWriter. BufferedWriter bufferedWriter = new BufferedWriter(fileWriter); // No
try {
// Assume default encoding.
FileWriter fileWriter = new FileWriter(fileName);
// Always wrap FileWriter in BufferedWriter.
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
// Note that write() does not automatically
// append a newline character.
bufferedWriter.write("@relation dummy");
bufferedWriter.newLine();
bufferedWriter.write("@attribute unexpectedness {0, 1}");
bufferedWriter.newLine();
bufferedWriter.write("@data");
bufferedWriter.newLine();
for (String[] row : instances) {
if (counter > 450) {
bufferedWriter.write(row[0]+", "+row[1]+", "+row[2]+", "+row[3]+", "+row[4]+", "+row[5]+", "+row[6]+", "+row[7]+", "+row[8]);
// System.out.println(row[0]+", "+row[1]+", "+row[2]+", "+row[3]+", "+row[4]+", ttt "+row[5]+", "+row[6]+", "+row[7]);
bufferedWriter.newLine();
testRows.add(row);
}
else {
counter = counter + 1;
}
}
bufferedWriter.flush();
bufferedWriter.close();
}
catch (IOException ex) {
System.out.println("Error writing to file '" + fileName + "'");
}
finally {
System.gc();
}
这是可行的,但问题在于我有400个元素,但令人惊讶的是bufferwriter写了大约5000行。有人能解释为什么会这样吗
更新:
我检查了输出,似乎bufferwriter将每行写入文本文件8次。您可以使用PrintWriter(我们称之为pw)这样写入文件:
pw.println("bla bla");
通过这种方式,编写器每次都会在新行上写入。是的,但这种方式我不能使用提高速度的缓冲功能,但如果程序没有计算大量信息,则速度差不会太大,这是我的观点,我对Java非常陌生,但这是一项庞大工作的一部分,时间复杂性也很重要。您如何设置
实例
变量?您能提供一个重现您的问题的方法吗?我们只能猜测问题出在哪里,因为我们不知道您喜欢写什么。您是否使用调试器检查了每个步骤中每个变量包含的内容?您好,再次感谢@BrianKent,我了解到我的实例有重复项,与Budferstream无关,实际上有一段时间我认为budderstream可能写了其他东西,但问题是我的例子