Merge pull request #11962 from alemoles/master
BAEL-5429 - How to Fix Java Compiler Error: Illegal Character (#9)
This commit is contained in:
commit
d49fe65f1d
|
@ -59,6 +59,16 @@
|
||||||
<artifactId>spring-core</artifactId>
|
<artifactId>spring-core</artifactId>
|
||||||
<version>${spring.core.version}</version>
|
<version>${spring.core.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>commons-io</groupId>
|
||||||
|
<artifactId>commons-io</artifactId>
|
||||||
|
<version>${commons-io.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.google.gdata</groupId>
|
||||||
|
<artifactId>core</artifactId>
|
||||||
|
<version>1.47.1</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|
|
@ -0,0 +1,79 @@
|
||||||
|
package com.baeldung.illegalcharacter;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertNotEquals;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.io.Reader;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import org.apache.commons.io.ByteOrderMark;
|
||||||
|
import org.apache.commons.io.input.BOMInputStream;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import com.google.gdata.util.io.base.UnicodeReader;
|
||||||
|
|
||||||
|
public class IllegalCharacterUnitTest {
|
||||||
|
|
||||||
|
final String RESOURCE_FILE_NAME = "bom-file.txt";
|
||||||
|
final InputStream ioStream = this.getClass()
|
||||||
|
.getClassLoader()
|
||||||
|
.getResourceAsStream(RESOURCE_FILE_NAME);
|
||||||
|
final String expected = "Hello world with BOM.";
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void whenInputFileHasBOM_thenUseInputStream() throws IOException {
|
||||||
|
String line;
|
||||||
|
String actual = "";
|
||||||
|
|
||||||
|
try (BufferedReader br = new BufferedReader(new InputStreamReader(ioStream))) {
|
||||||
|
while ((line = br.readLine()) != null) {
|
||||||
|
actual += line;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
assertNotEquals(expected, actual);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void whenInputFileHasBOM_thenUseInputStreamWithReplace() throws IOException {
|
||||||
|
String line;
|
||||||
|
String actual = "";
|
||||||
|
|
||||||
|
try (BufferedReader br = new BufferedReader(new InputStreamReader(Objects.requireNonNull(ioStream)))) {
|
||||||
|
while ((line = br.readLine()) != null) {
|
||||||
|
actual += line.replace("\uFEFF", "");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
assertEquals(expected, actual);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void whenInputFileHasBOM_thenUseBOMInputStream() throws IOException {
|
||||||
|
String line;
|
||||||
|
String actual = "";
|
||||||
|
|
||||||
|
try (BufferedReader br = new BufferedReader(new InputStreamReader(new BOMInputStream(ioStream, false, ByteOrderMark.UTF_8, ByteOrderMark.UTF_16BE, ByteOrderMark.UTF_16LE, ByteOrderMark.UTF_32BE, ByteOrderMark.UTF_32LE)))) {
|
||||||
|
while ((line = br.readLine()) != null) {
|
||||||
|
actual += line;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
assertEquals(expected, actual);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void whenInputFileHasBOM_thenUseGoogleGdata() throws IOException {
|
||||||
|
char[] actual = new char[21];
|
||||||
|
|
||||||
|
try (Reader r = new UnicodeReader(ioStream, null)) {
|
||||||
|
r.read(actual);
|
||||||
|
}
|
||||||
|
|
||||||
|
assertEquals(expected, String.valueOf(actual));
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
Hello world with BOM.
|
Loading…
Reference in New Issue