用Java创建文件

时间:2013-02-11 10:42:09

标签: java file

我想创建一个文件,其内容应如下所示:

Start

NAME      COLLEGE        COUNTRY    MOBILE

xyz        college1      India      1234567890

abc        college2       Germany    4561237890

End

在上面的文件中,列名是固定的,每行的值都会改变。未定义行数。我在java中使用String Template尝试了这个,使用以下sample.st

Start

NAME COLLEGE COUNTRY MOBILE

$name$ $college$ $country$ $mobile$

End

占位符值将被实际值替换。但我不确定这个appraoch可以有多行。

3 个答案:

答案 0 :(得分:0)

为什么不在每一行使用模板?使用StringBuilder连接标题,然后遍历行,通过模板生成字符串并附加到StringBuilder

e.g。在伪代码中:

StringBuilder sb = new StringBuilder();
sb.append("START\n");
sb.append(....)
foreach(Row r : rows) {
   sb.append(template);
}
sb.append("END\n");

如果失败,请查看模板库,例如VelocityFreemarker

答案 1 :(得分:0)

是的,为什么不呢?就在您阅读文件时,请确保跳过标题和开始和结束,然后逐行阅读文件。

还要考虑使用一些分隔符,例如“;”除非你想通过像sed / awk这样的东西阅读它 - 当你阅读它时,它会更加舒适。

答案 2 :(得分:0)

使用FormatterScanner类:

文件创建

Formatter f=new Formatter("data.txt");
    f.format("%s%n","START");
    f.format("%s\t\t%s\t\t%s\t\t%s%n","NAME","COLLEGE","COUNTRY","MOBILE");
    for(int i=0;i<10;i++)
    {
     f.format("%d\t\t%d\t\t%d\t\t%d%n",i,i,i,i);  // Apply your logic for input over here
    }
    f.format("%s%n","END");
    f.close();

文件阅读

    Scanner s=new Scanner(new File("data.txt"));
    while(s.hasNext())
    {
        System.out.println(s.nextLine());   
    }
    s.close();
    }