以下代码段显示了如何在Java中创建制表符分隔的数据文件。制表符使用\t字符序列表示,反斜杠(\)字符后跟t字母。在下面的代码中,我们首先定义一些要写入文件的数据。
我们创建一个PrintWriter对象,传递一个使用Files.newBufferedWriter()方法创建的BufferedWritter。 country.dat是将写入数据的文件名。 因为我们使用的是try-with-resources,所以在文件操作完成后,PrintWriter和相关对象将自动关闭。
package org.nhooo.example.io; import java.io.IOException; import java.io.PrintWriter; import java.nio.file.Files; import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; public class TabDelimitedDataFile { public static void main(String[] args) throws IOException { List<String[]> data = new ArrayList<>(); data.add(new String[]{"Afghanistan", "AF", "AFG", "004", "Asia"}); data.add(new String[]{"Åland Islands", "AX", "ALA", "248", "Europe"}); data.add(new String[]{"Albania", "AL", "ALB", "008", "Europe"}); data.add(new String[]{"Algeria", "DZ", "DZA", "012", "Africa"}); data.add(new String[]{"American Samoa", "AS", "ASM", "016", "Polynesia"}); data.add(new String[]{"Andorra", "AD", "AND", "020", "South Europe"}); data.add(new String[]{"Angola", "AO", "AGO", "024", "Africa"}); data.add(new String[]{"Anguilla", "AI", "AIA", "660", "Americas"}); data.add(new String[]{"Antarctica", "AQ", "ATA", "010", ""}); data.add(new String[]{"Argentina", "AR", "ARG", "032", "Americas"}); try (PrintWriter writer = new PrintWriter( Files.newBufferedWriter(Paths.get("countries.dat")))) { for (String[] row : data) { writer.printf("%1$20s\t%2$3s\t\t%3$3s\t\t%4$3s\t\t%5$s", row[0], row[1], row[2], row[3], row[4]); writer.println(); } } } }
上面的代码片段的输出是:
Afghanistan AF AFG 004 Asia Åland Islands AX ALA 248 Europe Albania AL ALB 008 Europe Algeria DZ DZA 012 Africa American Samoa AS ASM 016 Polynesia Andorra AD AND 020 South Europe Angola AO AGO 024 Africa Anguilla AI AIA 660 Americas Antarctica AQ ATA 010 Argentina AR ARG 032 Americas