有一个文件内容是这样的 header1| header2| header3| header4|…. A1|A2|A3|A4|… B1|B2|B3|B4|… 写一个完整的Java program,读取文件,然后把header和对应的body中存储到Map中
时间: 2023-08-27 12:14:05 浏览: 161
matlab中如何读取文本文件.pdf
下面是一个完整的 Java 程序,读取文件并将 header 和对应的 body 存储到 Map 中的示例:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;import java.util.Map;
public class FileToMap {
public static void main(String[] args) {
String filePath = "path/to/your/file.txt"; // 替换为你的文件路径
Map<String, String[]> map = new HashMap<>();
try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
String line;
boolean isFirstLine = true;
String[] headers = null;
while ((line = reader.readLine()) != null) {
if (isFirstLine) {
headers = line.split("\\|");
isFirstLine = false;
} else {
String[] body = line.split("\\|");
for (int i = 0; i < headers.length; i++) {
map.put(headers[i], body[i]);
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
// 打印 Map 中的数据
for (Map.Entry<String, String[]> entry : map.entrySet()) {
String header = entry.getKey();
String[] body = entry.getValue();
System.out.println(header + ": " + String.join(", ", body));
}
}
}
```
请将代码中的 `filePath` 替换为你实际的文件路径。这段代码使用 `BufferedReader` 逐行读取文件内容,并根据第一行的 header 创建一个数组来存储每一列的数据。接下来,对于每一行的 body 数据,将其与对应的 header 放入 Map 中。
最后,遍历 Map 并打印出每个 header 和对应的 body 数据。你可以根据需要进行修改和扩展。
阅读全文