我想创建一个文件,其内容应如下所示:
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可以有多行。
答案 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");
如果失败,请查看模板库,例如Velocity或Freemarker。
答案 1 :(得分:0)
还要考虑使用一些分隔符,例如“;”除非你想通过像sed / awk这样的东西阅读它 - 当你阅读它时,它会更加舒适。
答案 2 :(得分:0)
使用Formatter
和Scanner
类:
文件创建
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();
}