diff --git a/src/main/java/org/apache/commons/io/FileUtils.java b/src/main/java/org/apache/commons/io/FileUtils.java index e04977670e6..c29399435f8 100644 --- a/src/main/java/org/apache/commons/io/FileUtils.java +++ b/src/main/java/org/apache/commons/io/FileUtils.java @@ -2817,7 +2817,7 @@ public static List readLines(final File file) throws IOException { * @since 2.3 */ public static List readLines(final File file, final Charset charset) throws IOException { - return Files.readAllLines(file.toPath(), charset); + return Files.readAllLines(file.toPath(), Charsets.toCharset(charset)); } /** diff --git a/src/test/java/org/apache/commons/io/FileUtilsTest.java b/src/test/java/org/apache/commons/io/FileUtilsTest.java index b46a55f88b7..661c41288fe 100644 --- a/src/test/java/org/apache/commons/io/FileUtilsTest.java +++ b/src/test/java/org/apache/commons/io/FileUtilsTest.java @@ -2839,6 +2839,25 @@ public void testReadLines_Errors() { assertThrows(UnsupportedCharsetException.class, () -> FileUtils.readLines(tempDirFile, "unsupported-charset")); } + @Test + public void testReadLines_Defaults() throws Exception { + final File file = TestUtils.newFile(tempDirFile, "lines.txt"); + try { + final String[] data = {"hello", "this is", "some text"}; + TestUtils.createLineFileUtf8(file, data); + + final List lines1 = FileUtils.readLines(file); + final List lines2 = FileUtils.readLines(file, (Charset) null); + final List lines3 = FileUtils.readLines(file, Charset.defaultCharset()); + + assertEquals(lines1, Arrays.asList(data)); + assertEquals(lines1, lines2); + assertEquals(lines1, lines3); + } finally { + TestUtils.deleteFile(file); + } + } + @Test @EnabledIf("isPosixFilePermissionsSupported") public void testReadLines_IOExceptionOnPosixFileSystem() throws Exception {