无法在java中写入文件,因为它正在使用System.out.println打印

无法在java中写入文件,因为它正在使用System.out.println打印,java,file,bufferedwriter,Java,File,Bufferedwriter,输出是 运行: 123456生成成功(总时间:0秒) 但是在文件中没有数据是写入方法所做的: 通常,此方法将给定数组中的字符存储到 此流的缓冲区,将缓冲区刷新为底层流 需要 因此,它写入缓冲区,而不是直接写入文件。要使缓冲区刷新,您需要调用刷新或关闭方法,例如: File output=new File("C:\\\\MDU-1617-CSJ0098\\\\web\\\\products.txt"); BufferedWriter writer1 = new BufferedWriter(new

输出是 运行: 123456生成成功(总时间:0秒)

但是在文件中没有数据

写入
方法所做的:

通常,此方法将给定数组中的字符存储到 此流的缓冲区,将缓冲区刷新为底层流 需要

因此,它写入
缓冲区
,而不是直接写入文件。要使缓冲区
刷新
,您需要调用
刷新
关闭
方法,例如:

File output=new File("C:\\\\MDU-1617-CSJ0098\\\\web\\\\products.txt");
BufferedWriter writer1 = new BufferedWriter(new FileWriter(output));               
while(q_set2.next()) {
    String s = String.valueOf(q_set2.getInt(1));
    System.out.print(s);
    writer1.write(s);
    writer1.newLine();
}
close()
在内部调用
flush()
,因此,在这种情况下,不需要显式调用
flush()

write
方法的功能:

通常,此方法将给定数组中的字符存储到 此流的缓冲区,将缓冲区刷新为底层流 需要

因此,它写入
缓冲区
,而不是直接写入文件。要使缓冲区
刷新
,您需要调用
刷新
关闭
方法,例如:

File output=new File("C:\\\\MDU-1617-CSJ0098\\\\web\\\\products.txt");
BufferedWriter writer1 = new BufferedWriter(new FileWriter(output));               
while(q_set2.next()) {
    String s = String.valueOf(q_set2.getInt(1));
    System.out.print(s);
    writer1.write(s);
    writer1.newLine();
}

close()
在内部调用
flush()
,因此,在这种情况下,您不需要显式调用
flush()

当您调用
writer1.write
时,您实际上并没有打印文件中的任何内容,而是将数据收集到内存中。收集完所有数据后,可以通过调用
flush()
将所有数据一次写入文件

这是因为写入文件是一项代价高昂的操作,因此
BufferedWriter
的设计方式使它能够方便地一次写入所有数据,而不是将其分块写入

这就是为什么你需要冲洗小溪

public void flush()引发IOException

冲过小溪

现在你可以

  • 调用
    flush()
    方法或
  • 关闭小溪。这将自动调用
    flush()
    方法

  • 当您调用
    writer1.write
    时,实际上并不是在打印文件中的任何内容,而是在将数据收集到内存中。收集完所有数据后,可以通过调用
    flush()
    将所有数据一次写入文件

    这是因为写入文件是一项代价高昂的操作,因此
    BufferedWriter
    的设计方式使它能够方便地一次写入所有数据,而不是将其分块写入

    这就是为什么你需要冲洗小溪

    public void flush()引发IOException

    冲过小溪

    现在你可以

  • 调用
    flush()
    方法或
  • 关闭小溪。这将自动调用
    flush()
    方法

  • 首先捕获IOException并使用如下路径“C:\MDU-1617-CSJ0098\web\products.txt”。是否关闭了
    BufferedWriter
    ?首先捕获IOException并使用如下路径“C:\MDU-1617-CSJ0098\web\products.txt”。是否关闭了
    BufferedWriter
    File output=new File("C:\\\\MDU-1617-CSJ0098\\\\web\\\\products.txt");
             BufferedWriter writer1 = new BufferedWriter(new FileWriter(output));               
    
    while(q_set2.next())  {
        String s=String.valueOf(q_set2.getInt(1));
        System.out.print(s);
        writer1.write(s);
        writer1.newLine();
    }
    
    writer1.flush(); // or writer1.close();