我正在使用此方法从文本文件中打印一些数据,并尝试将其输出为表格格式。
第一个参数只是请求一个必须在中间列的单词,而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;
}
我尝试过同时使用printf
和System.out.format
,但他们似乎都在做同样的事情,所以我不确定。
任何人都可以解释我在这种方法中缺少的东西。
答案 0 :(得分:0)
您的问题不明确:您是否正在尝试读取(文本)文件,知道这些行由3列组成,第二列(因此中间的一行)被认为是已知的? 使用以下代码段,可以读取文件:
使用扫描仪并打印一个又一个字
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个“列”),请告诉我,我会尽力帮助。