2013-02-11 2 views
-2

Я хочу, чтобы создать файл, содержимое которого должно быть как один, упомянутых ниже:Создание файла в Java

Start 

NAME  COLLEGE  COUNTRY MOBILE 

xyz  college1  India  1234567890 

abc  college2  Germany 4561237890 

End 

В указанном файле, имена столбцов фиксируются только значения каждой строки изменится. Количество строк не определено. Я попытался это с помощью строки шаблона в Java, со следующим sample.st

Start 

NAME COLLEGE COUNTRY MOBILE 

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

End 

Где значение держателя места будет заменены фактическими долинами. Но я не уверен в этом вопросе, могу ли я иметь несколько строк.

ответ

0

Почему бы не просто использовать шаблон для каждой строки? Используйте команду StringBuilder для объединения заголовка, а затем итерации по строкам, создания строки через шаблон и добавления к StringBuilder.

например. в коде псевдо-МОГЛИ:

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

В противном случае, проверить шаблонные библиотеки, такие как Velocity или Freemarker.

0

Да, почему бы и нет? Просто прочитав файл, убедитесь, что вы пропустили заголовок и начало &, а затем прочитали файл за строкой.

Также рассмотрите возможность использования некоторых разделителей, например ";" если вы не хотите читать его чем-то вроде sed/awk - гораздо удобнее, когда вы его читаете.

+0

добавьте некоторый кусок кода, если это возможно – Beginner

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(); 
    } 
Смежные вопросы