Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java bufferedWriter写入的内容多于馈送的内容_Java_Bufferedwriter - Fatal编程技术网

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可能写了其他东西,但问题是我的例子