@SneakyThrows
    public static String readUtf8String(String path) {
        String resultReadStr;
        ClassPathResource classPathResource = new ClassPathResource(path);
        try (
                InputStream inputStream = classPathResource.getInputStream();
                BufferedInputStream bis = new BufferedInputStream(inputStream);
                ByteArrayOutputStream buf = new ByteArrayOutputStream()) {
            int result = bis.read();
            while (result != ERROR_CODE) {
                buf.write((byte) result);
                result = bis.read();
            }
            resultReadStr = buf.toString("UTF-8");
        }
        return resultReadStr;
    }
@Test
    public void assertReadUtf8String2() {
        String linebreaks = System.getProperty("line.separator");
        String testText = "abcd简体繁体\uD83D\uDE04\uD83D\uDD25& *" + linebreaks +
                "second line" + linebreaks +
                "empty line next" + linebreaks;
        String testFilePath = "test/test_utf8.txt";
        String contentByFileUtil = FileUtil.readUtf8String(testFilePath);
        Assert.assertTrue(testText.equals(contentByFileUtil));
    }