java读取文件夹下txt文件中特定信息(很急求解!!!) 100
现在一个文件夹在E盘下,路径为"E:\\七年级",七年级文件夹下有"n.txt,n[1].txt,n[2].txt,n[3].txt......"以此类推到n[100]....
现在一个文件夹在E盘下,路径为"E:\\七年级",七年级文件夹下有"n.txt,n[1].txt,n[2].txt,n[3].txt......"以此类推到n[100].txt。每个txt文件中都包含了json格式的学生基本信息,如打开n.txt中信息如下:[{"sex":"0","date_created":"9/1/2017","city":"合肥","id":"1","url":"","email":"","true_name":"张三","telephone":"13000000000 "},{"sex":"1","date_created":"9/1/2017","city":"合肥","id":"2","url":"","email":"","true_name":"韩梅梅","telephone":"15111111111"},...],每个txt文件都包含类似这样的json学生信息。如何用java程序读取该文件夹中所有txt文件,并且将每个文件中学生的true_name和telephone提取出来,最终效果如下:
张三:13000000000
韩梅梅:15111111111
.
.
.
依次类推。 展开
张三:13000000000
韩梅梅:15111111111
.
.
.
依次类推。 展开
2个回答
展开全部
import com.fasterxml.jackson.databind.*;
import java.io.*;
import java.util.regex.*;
/**
* @author hardneedl
*/
class ExtractJson {
/**
* 命令行参数:
* [0] 给出待搜索的路径
* [1] 收集内容并输出到文件(文件的路径)
* @param args
*/
public static void main(String... args) throws IOException {
//命令行参数给出搜索路径
File[] files = new File(args[0]).listFiles(new FilenameFilter() {
final private Pattern p = Pattern.compile("n\\[([0-9]{1,2}|100)\\]\\.txt");
public boolean accept(File dir, String name) {
return p.matcher(name).matches();
}
});
ObjectMapper objectMapper = new ObjectMapper();
FileWriter writer = new FileWriter(args[1]);
for (File f : files) {
try {
JsonNode jsonNode = objectMapper.readTree(f);
jsonNode.forEach(n->{
try {
writer.write(n.get("true_name")+":"+n.get("telephone")+"\r\n");
writer.flush();
} catch (IOException e) {
e.printStackTrace();
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
writer.close();
}
}
使用第三方开发包: jackson
JDK 8 版本
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你贴上文本人家就好看了, 如果存的是json格式的,你直接用流读取出内容, 改成字符串,
看是JSONObject,还是JSONArray,直接转成 model好了
File file = new File("123.txt");
String re = "";
BufferedReader br = null;
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
String str = null;
while ((str = br.readLine()) != null) {
re += str;
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null)
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
JSONArray ja = JSONArray.fromObject(re);
for (Object object : ja) {
JSONObject jo = (JSONObject) object;
System.out.println(jo.getString("id"));
System.out.println(jo.getString("true_name"));
System.out.println(jo.getString("city"));
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询