58,454
社区成员
发帖
与我相关
我的任务
分享
File file = new File("F:/temp.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
String line = "";
// 将所有分类初始化为string对象用于保存
Map<String, String> resultMap = new HashMap<String, String>();
String start = "";
while ((line = reader.readLine()) != null) {
// 截取每行前三个字母(根据你的要求修改截取长度)
if (line.substring(0, 3).trim().length() > 0) {
start = line.substring(0, 3).trim();
}
if (resultMap.containsKey(start)) {
resultMap.put(start, resultMap.get(start) + line.substring(3));
} else {
resultMap.put(start, line.substring(3));
}
}
reader.close();
for (Entry<String, String> keySet : resultMap.entrySet()) {
System.out.println(keySet.getKey() + ":" + keySet.getValue());
}
改进了一下代码~File file = new File("F:/temp.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
String line = "";
// 将所有分类初始化为string对象用于保存
Map<String, String> resultMap = new HashMap<String, String>();
resultMap.put("FN", "");
resultMap.put("VR", "");
resultMap.put("PT", "");
resultMap.put("AU", "");
resultMap.put("AF", "");
resultMap.put("TI", "");
resultMap.put("SO", "");
resultMap.put("LA", "");
resultMap.put("DT", "");
resultMap.put("DE", "");
resultMap.put("AB", "");
String start = "";
while ((line = reader.readLine()) != null) {
// 截取每行前三个字母(根据你的要求修改截取长度)
if (line.substring(0, 3).trim().length() > 0) {
start = line.substring(0, 3).trim();
}
resultMap.put(start, resultMap.get(start) + line.substring(3));
}
reader.close();
for (Entry<String, String> keySet : resultMap.entrySet()) {
System.out.println(keySet.getKey() + ":" + keySet.getValue());
}
这个方法,MAP里面的值根据你的txt来修改,然后保存到数据库字段对应MAP的key就行。至于每个key里面的细分,string.split(",")就行,按照你的需求来~