使用spring写入文件

时间:2014-10-02 11:19:52

标签: java xml spring

我试图写下一个新项目的名称'进入一个文本文件,但是在这样做时我遇到了一些错误,就像它读取和写入不同的文件一样,这就是我所拥有的。

CsvItemDao.java

public class CsvItemDao implements ItemDao {

private Resource csvResource;

public void setCsvResource(Resource csvResource){
    this.csvResource = csvResource;
}

    public List<Item> newItem() throws Exception {

    List<Item> results = new ArrayList<Item>();
    String name;

    BufferedReader br = new BufferedReader(new FileReader(csvResource.getFile()));
    String line;
    while ((line = br.readLine()) != null) {
        String[] fields = line.split(",");
        String itemName = fields[0];
        Item item = new Item(itemName);
        results.add(item);
    }
    br.close();

    Scanner input = new Scanner(System.in);
    System.out.println("Enter new item");
    name = input.nextLine();

    Item item = new Item(name);

    results.add(item);

    try {

        //BufferedWriter fw = new BufferedWriter(new FileWriter(csvResource.getFile()));

        File file = new File (String.valueOf(csvResource.getFile()));
        FileWriter fw = new FileWriter(file.getAbsoluteFile());
        BufferedWriter bw = new BufferedWriter(fw);

        for (int i = 0; i < results.size(); i++) {
            bw.write(results.get(i).getItemName() + "\n");
        }
        bw.close();
    }catch(IOException e){
        e.printStackTrace();
    }

    return results;
}

}

在我的spring-config.xml中我有这个

    <bean id="itemDao"
      class="foo.bar.CsvItemDao">
    <property name="csvResource" value="items.csv"/>
</bean>
<bean id="ItemService"
      class="foo.bar.ItemService">
    <property name="itemDao" ref="itemDao"/>
</bean>

有趣的是,这是有效的,只是我的&#39; items.csv&#39;资源中的文件没有更新,但是当我从文件中读取时,我得到了我最近写的项目,我希望你理解,并告诉我是否可以提供更多信息。

编辑: 没有错误消息,它有效,它只是如果我打开文件(items.csv)我只会看到初始列表,而不是我添加的项目,但如果我从列表中读取到程序我看到所有项目,为什么我看不到列表中添加的项目?我相信它与文件编写者有关,也许它不会关闭或者什么。

0 个答案:

没有答案