java读取多行文件到map
时间: 2023-08-02 09:08:47 浏览: 118
java 读取系统Properties代码实例
可以使用以下代码将多行文件内容读取到 Map 中:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.HashMap;
import java.util.Map;
public class FileToMap {
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
String key = null;
StringBuilder valueBuilder = new StringBuilder();
try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
String line;
while ((line = br.readLine()) != null) {
if (line.startsWith("#")) {
// 处理注释行
continue;
} else if (line.contains("=")) {
// 处理键值对行
if (key != null) {
// 如果已经存在 key,将之前的 value 添加到 map 中
map.put(key, valueBuilder.toString());
}
String[] parts = line.split("=");
key = parts[0];
valueBuilder = new StringBuilder(parts[1]);
} else {
// 处理多行 value
valueBuilder.append("\n").append(line);
}
}
// 处理最后一个键值对
if (key != null) {
map.put(key, valueBuilder.toString());
}
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(map);
}
}
```
以上代码将文件中的键值对读取到 `Map<String, String>` 中,并处理了多行 value 的情况。文件中以 `#` 开头的行被认为是注释行,会被忽略。每个键值对占一行,以 `=` 分隔。如果 value 是多行,则在每行末尾添加 `\n`,将多行 value 合并成一个字符串。
阅读全文