📜  如何在java中从文本文件中读取表格(1)

📅  最后修改于: 2023-12-03 15:24:32.017000             🧑  作者: Mango

如何在Java中从文本文件中读取表格

当你需要从文本文件中获取一些数据时,你可以采用读取表格的方式。本文将向你介绍如何在Java中从文本文件中读取表格。

读取CSV格式的表格

CSV(即逗号分隔值)是一种常用的表格格式,在Java中可以使用BufferedReader和StringTokenizer类来读取。

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

public class CSVReader {
    public static void main(String[] args) {
        String csvFile = "file.csv";
        BufferedReader br = null;
        String line = "";
        String cvsSplitBy = ",";
        List<String[]> data = new ArrayList<>();

        try {
            br = new BufferedReader(new FileReader(csvFile));
            while ((line = br.readLine()) != null) {
                StringTokenizer st = new StringTokenizer(line, cvsSplitBy);
                String[] row = new String[st.countTokens()];
                int i = 0;
                while (st.hasMoreTokens()) {
                    row[i++] = st.nextToken();
                }
                data.add(row);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

        // 打印表格数据
        for (String[] row : data) {
            for (String col : row) {
                System.out.print(col + "\t");
            }
            System.out.println();
        }
    }
}

以上代码将读取file.csv文件并将其解析为一个字符串数组列表。每行被转换为一个字符串数组,而该数组被添加到列表数据中。最后,表格数据将被打印到控制台。

读取固定宽度的表格

有时你需要从一些固定宽度的表格中获取数据,这时你可以用Scanner类来进行读取操作。

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class TextReader {
    public static void main(String[] args) {
        File file = new File("file.txt");
        Scanner scanner = null;

        try {
            scanner = new Scanner(file);
            while (scanner.hasNextLine()) {
                String line = scanner.nextLine();
                String[] row = new String[] {
                        line.substring(0, 10).trim(),
                        line.substring(10, 20).trim(),
                        line.substring(20, 30).trim(),
                        line.substring(30, 40).trim()
                };
                // 处理表格数据
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } finally {
            if (scanner != null) {
                scanner.close();
            }
        }
    }
}

以上代码将读取file.txt文件并将其解析为一个固定宽度的表格。每一行被读取并分割成一个字符串数组,而该数组则用于处理表格数据。

结论

本文向你介绍了如何在Java中从文本文件中读取表格,并提供了两种读取方式——CSV和固定宽度。上述代码应该能够满足你从文本文件中读取表格的需求。