📅  最后修改于: 2023-12-03 15:24:32.017000             🧑  作者: Mango
当你需要从文本文件中获取一些数据时,你可以采用读取表格的方式。本文将向你介绍如何在Java中从文本文件中读取表格。
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和固定宽度。上述代码应该能够满足你从文本文件中读取表格的需求。