美文网首页
Java读取文件的三种方式

Java读取文件的三种方式

作者: 爱跳的老鼠君 | 来源:发表于2021-02-16 18:05 被阅读0次

在实际工作开发中,往往会遇到要从resource 目录里读取文件的需求, 我这里总结了三种方式。

  1. Classloader 读取。 比较适合单个文件的读取。
        InputStream inputStream = StudentAddBean.class.getClassLoader().getResourceAsStream("avro/User.avsc");
        Assert.notNull(inputStream);
        String str = IOUtils.toString(inputStream, "utf-8");
        System.out.println("method 1: \n" + str);
  1. 使用guava library里的Resource 类
        URL uri = Resources.getResource("avro/User.avsc");
        Assert.notNull(uri);
        String str2 = Resources.toString(uri, Charsets.UTF_8);
        System.out.println("method 2: \n" + str2);
  1. 使用spring里的PathMatchingResourcePatternResolver 类, 也是我个人最喜欢的一种方式,适合批量读取文件。
        PathMatchingResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();
        Resource[] resources = resourcePatternResolver.getResources("avro/**/*.avsc");

        Stream.of(resources).forEach(resource -> {
            try {
                String str3 = IOUtils.toString(resource.getInputStream(), "utf-8");
                System.out.println("method 3: \n" + str3);
            } catch (Exception e) {
                e.printStackTrace();
            }
        });

相关文章

网友评论

      本文标题:Java读取文件的三种方式

      本文链接:https://www.haomeiwen.com/subject/ejzvxltx.html