Java 我的数组列表到.txt文件程序给了我几个错误
我有一个清单应用程序,它根据用户输入设置字符串列表。然后将字符串导出到.txt文件。 我以前从来没有使用过FileWriter,我被卡住了 感谢您的帮助 以下是所有相关代码: 在接近结尾的三行中有“writer.”,它们给了我一个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 { /*
未报告的异常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;