将输出转换为表格

时间:2016-11-22 20:06:15

标签: java format output text-files

我正在使用此方法从文本文件中打印一些数据,并尝试将其输出为表格格式。 第一个参数只是请求一个必须在中间列的单词,而colSize应该设置列宽。

public String printTable(String midWord, int colSize) {
    String col1 = "";
    String col2 = midWord;
    String col3 = "";

    System.out.printf( "%-15s %15s %n", col1, midWord, col3);
    //System.out.format ( "%-15s %15s %n", col1, midWord, col3);

    return null;
}

我尝试过同时使用printfSystem.out.format,但他们似乎都在做同样的事情,所以我不确定。

任何人都可以解释我在这种方法中缺少的东西。

1 个答案:

答案 0 :(得分:0)

您的问题不明确:您是否正在尝试读取(文本)文件,知道这些行由3列组成,第二列(因此中间的一行)被认为是已知的? 使用以下代码段,可以读取文件:

  1. 一次性显示所有行并将其打印为行
  2. 使用扫描仪并打印一个又一个字

    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    import java.util.List;
    import java.util.Scanner;
    import java.util.stream.Stream;
    
    public class TestClass {
       private static final String fileName = "I:/myFile.txt";    
       public static void main(String[] args) {
         Stream<String> lines;
         Scanner scanner;
         try {
             lines = Files.lines(Paths.get(fileName));
             lines.toArray(String[]::new);
             // read all lines
             List<String> readAllLines = Files.readAllLines(Paths.get(fileName));
             // print each of the lines
             readAllLines.forEach(s -> System.out.println(s));
    
             // print a word each time
             File file = new File(fileName);
             scanner = new Scanner(file);
             while (scanner.hasNext()) {
                System.out.println(scanner.next());
             }
    
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }  
      }
    }
    
  3. 如果您在读取行时遇到问题(每行3个“列”),请告诉我,我会尽力帮助。