为什么当我尝试编写文件时,eclipse IDE会给我终止错误? import java.io.*; 公共类FileWriterDemo{ /** *@param args */ 公共静态void main(字符串[]args)引发IOException{ //TODO自动生成的方法存根 String source=“现在是所有好人的时候了\n”+ “来帮助他们的国家\n”+ “并缴纳他们应得的税款”; char buffer[]=新字符[source.length()]; getChars(0,source.length(),缓冲区,0); FileWriter f0=新的FileWriter(“file1.txt”); FileWriter f1=新的FileWriter(“file2.txt”); FileWriter f2=新的FileWriter(“file3.txt”); 试一试{ 对于(int i=0;i

为什么当我尝试编写文件时,eclipse IDE会给我终止错误? import java.io.*; 公共类FileWriterDemo{ /** *@param args */ 公共静态void main(字符串[]args)引发IOException{ //TODO自动生成的方法存根 String source=“现在是所有好人的时候了\n”+ “来帮助他们的国家\n”+ “并缴纳他们应得的税款”; char buffer[]=新字符[source.length()]; getChars(0,source.length(),缓冲区,0); FileWriter f0=新的FileWriter(“file1.txt”); FileWriter f1=新的FileWriter(“file2.txt”); FileWriter f2=新的FileWriter(“file3.txt”); 试一试{ 对于(int i=0;i,java,eclipse,file,io,Java,Eclipse,File,Io,来说,这只是意味着程序已经完成,在您的情况下,可能已经成功了,因为它没有在控制台上打印任何内容 只需检查file1.txt、file2.txt和file3.txt的内容,查看程序是否成功您确定这是一个错误而不是刚刚完成的程序吗?您得到的确切错误是什么?此外,您可能希望使用e.printStackTrace而不是System.out.println(…)在您的catch块中。如果您要复制粘贴您看到的消息/错误,这将极大地帮助我们帮助您,我们不必猜测您的计算机上发生了什么。这不是一个错误,但我在“我

来说,这只是意味着程序已经完成,在您的情况下,可能已经成功了,因为它没有在控制台上打印任何内容


只需检查
file1.txt、file2.txt和file3.txt的内容,查看程序是否成功

您确定这是一个错误而不是刚刚完成的程序吗?您得到的确切错误是什么?此外,您可能希望使用
e.printStackTrace
而不是
System.out.println(…)
在您的catch块中。如果您要复制粘贴您看到的消息/错误,这将极大地帮助我们帮助您,我们不必猜测您的计算机上发生了什么。这不是一个错误,但我在“我的控制台”选项卡的标题中得到…,没有任何输出。这意味着程序终止。判断在您的程序中,如果成功终止,则不会打印任何内容。我检查了每个文件。在执行f0.flush();f1.flush();f2.flush()时,所有文件都神秘地为空;flush实际上会将数据刷新到底层谢谢。它很有效。请解释一下它的机制。另外,如果我想在控制台中输出文件,我应该创建FileReader对象吗?当调用write()时,它只将数据写入缓冲区,而不是文件。因此需要调用flush()强制写入底层文件系统。有一个例外,如果缓冲区被填满,它会自动刷新到文件中
import java.io.*;

public class FileWriterDemo {

/**
 * @param args
 */
public static void main(String[] args) throws IOException {
    // TODO Auto-generated method stub

    String source = "Now is the time for all good men\n" +
                    " to come to aid of their country\n" +
                    " and pay their due taxes";

    char buffer[] = new char[source.length()];
    source.getChars(0, source.length(), buffer, 0);

    FileWriter f0 = new FileWriter("file1.txt");
    FileWriter f1 = new FileWriter("file2.txt");
    FileWriter f2 = new FileWriter("file3.txt");

    try{
        for(int i =0; i<buffer.length; i+=2){
            f0.write(buffer[i]);
        }

        f1.write(buffer);
        f2.write(buffer, buffer.length-buffer.length/4, buffer.length/4);

    }catch (IOException e){
        System.out.println("An I/O Error occured.");
    }
}