Outputting the table to the SQL console

It is necessary that a similar table be saved in a java file. My pitiful attempts have not advanced further than this:

Имя класса: ru.java2016.weekend1.task_1.SimpleBin -------------------------------------------------- имя поля Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏ поля ---------------------------------------------------------------------- var 13 int field El Diablo String num 666 int peee 3.14 double e 2.7 double emotion Bingo! String luck 777 int calibre 7.62 double 

Crooked / askew !!! Kapets! Sobsno code:

 public void printBody(Object object, Class clazz, String file, List<Field> list) { try (PrintWriter output = new PrintWriter(new FileOutputStream(file))) { // записываСм Π² Ρ„Π°ΠΉΠ» output.print("Имя класса:\t" + clazz.getName() + "\n"); for (int i = 0; i < 50; i++) output.print("-"); output.println("\nимя поля\t\t\t\t\tΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅\t\t\t\t\tΡ‚ΠΈΠΏ поля"); for (int i = 0; i < 70; i++) output.print("-"); output.println(); for (Field field : list) { // Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ имя поля output.print(field.getName() + "\t\t\t\t\t\t"); // Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля field.setAccessible(true); // !!! Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ доступ ΠΊ значСниям ΠΏΠΎΠ»Π΅ΠΉ !!! output.print(field.get(object) + "\t\t\t\t\t\t"); // Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Ρ‚ΠΈΠΏ поля if (field.getType().toString().equals("class java.lang.String")) output.println("String"); else output.println(field.getType().toString()); } } catch (Throwable cause) { cause.printStackTrace(); } } 

Some kind of epidermia! Can anyone have experience creating such tables?

    1 answer 1

    Use printf() and specify the length of the field.

     output.println("%-20s%-10s%-10s%n", "имя поля", "Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅", "Ρ‚ΠΈΠΏ поля"); .............. for (Field field : list) { // Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ имя поля output.printf("%-20s", field.getName()); // Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля field.setAccessible(true); // !!! Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ доступ ΠΊ значСниям ΠΏΠΎΠ»Π΅ΠΉ !!! output.printf("%10s", field.get(object)); // Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Ρ‚ΠΈΠΏ поля if (field.getType().toString().equals("class java.lang.String")) output.println("String"); else output.println(field.getType().toString()); } 
    • Thanks, all worked well!!! - JΓΌrgen von Markoff