Java创建将写入文件的增量textobject

时间:2013-10-04 06:29:42

标签: java sql arraylist

我需要一些关于如何以良好方式完成此操作的输入。

我的应用程序今天就像这样。

它从一个sql server读取一个记录集,循环遍历这个记录集并创建以分号分隔的数据行放入ArrayList<String>

这个ArrayList我发送到一个打开文件编写器的输出类,并循环遍历ArrayList,打印所有行,为每一行添加一个换行符。

但现在我想以这种方式编辑这个功能。

记录集进来,每次分号行完成后,我会在行上放置一些验证方法来检查其有效性。如果该行有效,则上述任何内容都不应更改。但是如果行无效,那么它应该将整个“文档”(连接到此无效行的所有行)发送到错误输出。

所以我正在寻找如何建立一个良好的机制,以便能够为记录集的每个循环保存数据行,然后将文档(所有附加的行)发送到好数据或坏数据写入器。

这里的技巧是创建的分号行包含标题和X行,有时包括Header,Subheader和X行。因此,如果其中一行失败,我希望应该附加到该标头的所有行都落入错误输出。

我认为有更好的方法来应用我想要做的事情,可能是以JAVA方式,因为我主要是一个PHP程序员,而且很久以前我开始这个项目之前我的JAVA技能已经到了现在

1 个答案:

答案 0 :(得分:0)

如果验证逻辑不复杂,我会过滤sql语句中的行。 另一种方法是从分号表示中退出以支持对象,这样您就可以简单地删除带有子对象的对象。考虑使用像对象列表这样的东西:

public class Data {

    private Object header;
    private Object subHeader;
    private List<Object> rowData;
    private List<Data> children;
    //Constructors, getters setters, equal, hash, toString
}

通过在示例中构建层次结构a List<Data>您可以简单地删除一个对象(或将其发送到任何您想要的地方),并通过覆盖toString您根本不需要构建字符串数组。如果你需要它们,那么像equal和hash这样的方法也是如此。