Java 我的数组列表到.txt文件程序给了我几个错误

Java 我的数组列表到.txt文件程序给了我几个错误,java,string,swing,arraylist,filewriter,Java,String,Swing,Arraylist,Filewriter,我有一个清单应用程序,它根据用户输入设置字符串列表。然后将字符串导出到.txt文件。 我以前从来没有使用过FileWriter,我被卡住了 感谢您的帮助 以下是所有相关代码: 在接近结尾的三行中有“writer.”,它们给了我一个未报告的异常IOException;必须捕获或声明要抛出 import java.util.*; import java.io.FileWriter; public class mVentory extends javax.swing.JFrame { /*

我有一个清单应用程序,它根据用户输入设置字符串列表。然后将字符串导出到.txt文件。 我以前从来没有使用过FileWriter,我被卡住了

感谢您的帮助

以下是所有相关代码:

在接近结尾的三行中有“writer.”,它们给了我一个
未报告的异常IOException;必须捕获或声明要抛出

import java.util.*;
import java.io.FileWriter;

public class mVentory extends javax.swing.JFrame {

    /**
     * Creates new form mVentory
     */
    public mVentory() {
        initComponents();

    }

    public class ProductInfo {

        String name;
        String des;
        String ID;
        String num;

        public ProductInfo(String name, String des, String ID, String num) {
            this.name = name;
            this.des = des;
            this.ID = ID;
            this.num = num;
        }
    }

    public static void Inventory() {

    }

    //creat Array
    ArrayList<String> Inventory = new ArrayList<String>();

    private void AddGoActionPerformed(java.awt.event.ActionEvent evt) {
        // Add Item
        String Name, Description, Identification, Number, Item;

        Name = NameIn.getText();
        Description = DesIn.getText();
        Identification = IDIn.getText();
        Number = NumIn.getText();

        Item = "" + Name + "," + Description + "," + Identification + "," + Number + ".";

        Inventory.add(new String(Item));

        NameIn.setText("");
        DesIn.setText("");
        IDIn.setText("");
        NumIn.setText("");

    }

    private void ExportGoActionPerformed(java.awt.event.ActionEvent evt) {
        FileWriter writer;
        writer = new FileWriter("Inventory.txt");
        for (String str : Inventory) {
            writer.write(str);
        }
        writer.close();
    }
}
import java.util.*;
导入java.io.FileWriter;
公共类mVentory扩展了javax.swing.JFrame{
/**
*创建新表单mVentory
*/
公共设施(){
初始化组件();
}
公共类ProductInfo{
字符串名;
字符串des;
字符串ID;
字符串数;
public ProductInfo(字符串名称、字符串des、字符串ID、字符串num){
this.name=名称;
this.des=des;
this.ID=ID;
this.num=num;
}
}
公共静态无效库存(){
}
//创建数组
ArrayList Inventory=新的ArrayList();
私有void AddGoActionPerformed(java.awt.event.ActionEvent evt){
//添加项
字符串名称、描述、标识、编号、项目;
Name=NameIn.getText();
Description=DesIn.getText();
Identification=IDIn.getText();
Number=NumIn.getText();
项目=“名称+”、“+说明+”、“+标识+”、“+编号+”;
添加(新字符串(项目));
NameIn.setText(“”);
设计文本(“”);
IDIn.setText(“”);
NumIn.setText(“”);
}
private void ExportGoActionPerformed(java.awt.event.ActionEvent evt){
文件编写器;
writer=newfilewriter(“Inventory.txt”);
for(字符串str:Inventory){
writer.write(str);
}
writer.close();
}
}

你需要在你的作者周围有一个try/catch语句

例如:

private void ExportGoActionPerformed(java.awt.event.ActionEvent evt) {
    FileWriter writer = null;
    try {
        writer = new FileWriter("Inventory.txt");
        for (String str : Inventory) {
            writer.write(str);
        }
    } catch (IOException e) {
        //handle exception, rethrow or log
        e.printStackTrace();
    } finally {
        try {
            writer.close();
        } catch (IOException ignore){

        }
    }
 }

FileWriter扩展了OutputStreamWriter,它从中获取其
write
方法

http://docs.oracle.com/javase/7/docs/api/java/io/OutputStreamWriter.html#write(字符[],整数,整数)

根据docs write抛出一个
IOException

在Java中,您必须将抛出异常的代码包装到try-catch块中。或者抛出异常

private void ExportGoActionPerformed(java.awt.event.ActionEvent evt) {
    FileWriter writer;
    try {
        writer = new FileWriter("Inventory.txt");
        for (String str : Inventory) {
            writer.write(str);
        }
        writer.close();
    } catch (IOException e) {
         //Do something here to handle the error. Maybe publish a notification to the user that their file didn't write.
    } finally {
        try {
            writer.close();
        } catch (IOException ignore){}
    }
}
请注意,您正在使用的
FileWriter
构造函数也可以抛出
IOException
()以及
close
方法。因此,您需要在try块中包含所有这些语句

如果可能的话,finally块用于关闭文件句柄。不过,try with资源不再需要这样做。所以我建议使用它


对于具体的答案,请编辑您的问题,使其包含一个显示您选择的方法。您必须使用
try
catch
block.@trashgood什么是mcve?@MattMurch:单击链接了解详细信息。我尝试了您的建议,NetBeans现在报告它找不到“类IOException”。另外,生成的代码“publicstaticvoidmain(stringargs[]){”的最后一部分现在报告为“expreshion的非法启动”。请确保添加正确的导入语句:import java.io.IOException;