Java 应用程序未写入文件

Java 应用程序未写入文件,java,Java,作为初学者,我试图将一组信息打印到一个名为“Sign_in.txt”的文件中,但这段代码只创建文件,不打印任何内容。我做错了什么 String nu="CUSTOMER DETAILS START"; String enu="CUSTOMER DETAILS END"; n=namefield.getText(); a=agefield.getText(); ad=adfield.getText(); s=salfield.getText(); p

作为初学者,我试图将一组信息打印到一个名为“Sign_in.txt”的文件中,但这段代码只创建文件,不打印任何内容。我做错了什么

String nu="CUSTOMER DETAILS START";
    String enu="CUSTOMER DETAILS END";
    n=namefield.getText();
    a=agefield.getText();
    ad=adfield.getText();
    s=salfield.getText();
    p=phfield.getText();
    d=dobfield.getText();
    e=emfield.getText();
    ArrayList<String> list = new ArrayList<String>();
    list.add(nu);
    list.add(n);
    list.add(a);
    list.add(ad);
    list.add(s);
    list.add(p);
    list.add(d);
    list.add(e);
    list.add(u);
    list.add(q);
    list.add(enu);

    try(PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("Sign_in.txt",true)))) {
        Writer output = new BufferedWriter(out);
    int l = list.size();

            for(int i = 0; i<l; i++){
                output.write(list.get(i).toString()+"\n");
            }
    output.close();
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }
    JOptionPane.showMessageDialog(this,"Thank you for registering");
    System.exit(0);
    new accpage().setVisible(true);
}
String nu=“客户详细信息开始”;
String enu=“客户详细信息结束”;
n=namefield.getText();
a=agefield.getText();
ad=adfield.getText();
s=salfield.getText();
p=phfield.getText();
d=dobfield.getText();
e=emfield.getText();
ArrayList=新建ArrayList();
列表。添加(nu);
列表。添加(n);
列表.添加(a);
列表。添加(ad);
列表。添加(s);
增加(p);
列表.添加(d);
列表.添加(e);
增加(u);
列表。添加(q);
列表。添加(enu);
try(PrintWriter out=new PrintWriter(new BufferedWriter,new FileWriter(“Sign_in.txt”,true))){
写入器输出=新的缓冲写入器(输出);
int l=list.size();
对于(int i=0;i工作代码

try (PrintWriter output = new PrintWriter(
                               new BufferedOutputStream(
                                     new FileOutputStream("Sign_in.txt")), true)) 
   {            
        int l = list.size();
        for (int i = 0; i < l; i++) {
            output.println(list.get(i).toString());
        }

    } catch (Exception e) {
        e.printStackTrace();
    }
try(PrintWriter输出=新的PrintWriter(
新的缓冲输出流(
新文件输出流(“Sign_in.txt”)、true)
{            
int l=list.size();
对于(int i=0;i
我想要这样的东西:

try (PrintWriter output = 
         new PrintWriter(new BufferedWriter(new FileWriter("Sign_in.txt")))) 
{            
    for (String line: list) {
        output.println(line);
    }

} catch (Exception e) {
    e.printStackTrace();
}

您已经在使用try-with-resources。无需显式关闭输出。是否编译?是否尝试刷新输出流?使用增强的for循环
for(String item:list){
(也无需在
list.get(i).toString()上调用
toString()
,因为它已经是一个
字符串
)。这么多
编写器
s…您可能不应该调用
System.exit(0)
,我很确定Swing API有更好的退出Swing应用程序的方法。