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
.
.
.
依次类推。
展开
 我来答
hardneedl
2017-09-12 · TA获得超过921个赞
知道小有建树答主
回答量:1353
采纳率:57%
帮助的人:606万
展开全部
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 版本

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3b4b748
2017-09-12 · TA获得超过1059个赞
知道小有建树答主
回答量:760
采纳率:63%
帮助的人:272万
展开全部

你贴上文本人家就好看了, 如果存的是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"));
        }
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
?>

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式