diff options
author | Martin Polden <mpolden@mpolden.no> | 2020-10-05 13:37:33 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2020-10-05 13:48:57 +0200 |
commit | 5570710c8998c7ca73b868351b474c73a8e05af6 (patch) | |
tree | 4bd4cd7ed8101ffb06215615df1806aa60785ea5 /vespajlib | |
parent | c2b5c6561939017b1bc36d6845a405f64b34234d (diff) |
Use StandardCharsets
Diffstat (limited to 'vespajlib')
6 files changed, 39 insertions, 53 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/io/IOUtils.java b/vespajlib/src/main/java/com/yahoo/io/IOUtils.java index f2de0ace476..266b7857363 100644 --- a/vespajlib/src/main/java/com/yahoo/io/IOUtils.java +++ b/vespajlib/src/main/java/com/yahoo/io/IOUtils.java @@ -1,26 +1,24 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.io; import java.io.*; import java.nio.channels.FileChannel; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.NoSuchFileException; import java.util.List; import java.nio.charset.Charset; import java.nio.ByteBuffer; - /** - * <p>Some static io convenience methods.</p> + * Some static I/O convenience methods. * - * @author bratseth - * @author Bjorn Borud + * @author bratseth + * @author Bjorn Borud */ public abstract class IOUtils { - static private final Charset utf8Charset = Charset.forName("utf-8"); - /** Closes a writer, or does nothing if the writer is null */ public static void closeWriter(Writer writer) { if (writer == null) return; @@ -329,7 +327,7 @@ public abstract class IOUtils { * Encodes string as UTF-8 into ByteBuffer */ public static ByteBuffer utf8ByteBuffer(String s) { - return utf8Charset.encode(s); + return StandardCharsets.UTF_8.encode(s); } /** @@ -341,7 +339,7 @@ public abstract class IOUtils { public static String readFile(File file) throws IOException { try { if (file == null) return null; - return new String(Files.readAllBytes(file.toPath()), "utf-8"); + return Files.readString(file.toPath()); } catch (NoSuchFileException e) { throw new NoSuchFileException("Could not find file '" + file.getAbsolutePath() + "'"); diff --git a/vespajlib/src/main/java/com/yahoo/io/ReadLine.java b/vespajlib/src/main/java/com/yahoo/io/ReadLine.java index 6e7f9f5e50e..f8a820a7421 100644 --- a/vespajlib/src/main/java/com/yahoo/io/ReadLine.java +++ b/vespajlib/src/main/java/com/yahoo/io/ReadLine.java @@ -1,10 +1,9 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.io; import java.nio.Buffer; -import java.nio.charset.Charset; import java.nio.ByteBuffer; - +import java.nio.charset.StandardCharsets; /** * Conventient utility for reading lines from ByteBuffers. Please @@ -12,11 +11,10 @@ import java.nio.ByteBuffer; * ByteBuffer abstraction is somewhat clumsy and thus usage of this * code requires that you understand the semantics clearly. * - * @author <a href="mailto:borud@yahoo-inc.com">Bjorn Borud</a> + * @author Bjorn Borud * */ public class ReadLine { - static private Charset charset = Charset.forName("latin1"); /** * Extract next line from a byte buffer. Looks for EOL characters @@ -49,7 +47,7 @@ public class ReadLine { // The downcast to Buffer is done to avoid "redundant cast" warning on Java 9. // TODO: when Java 8 is gone, remove the casts and above comments. // extract string between start and i. - String line = charset.decode((ByteBuffer) ((Buffer)buffer.slice()).limit(i - start)).toString(); + String line = StandardCharsets.ISO_8859_1.decode((ByteBuffer) ((Buffer)buffer.slice()).limit(i - start)).toString(); // skip remaining for (; (i < buffer.limit()) && isEolChar(buffer.get(i)); i++) { @@ -80,4 +78,5 @@ public class ReadLine { static boolean isEolChar(byte b) { return ((10 == b) || (13 == b)); } + } diff --git a/vespajlib/src/main/java/com/yahoo/text/StringUtilities.java b/vespajlib/src/main/java/com/yahoo/text/StringUtilities.java index 370d079b3ec..74458be4584 100644 --- a/vespajlib/src/main/java/com/yahoo/text/StringUtilities.java +++ b/vespajlib/src/main/java/com/yahoo/text/StringUtilities.java @@ -1,9 +1,9 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.text; import com.google.common.collect.ImmutableSet; -import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import java.util.Collections; import java.util.List; import java.io.ByteArrayOutputStream; @@ -19,8 +19,6 @@ import java.util.Set; // TODO: Text utilities should which are still needed should move to Text. This should be deprecated. public class StringUtilities { - private static Charset UTF8 = Charset.forName("utf8"); - private static byte toHex(int val) { return (byte) (val < 10 ? '0' + val : 'a' + (val - 10)); } private static class ReplacementCharacters { @@ -65,7 +63,7 @@ public class StringUtilities { * @return The escaped string */ public static String escape(String source, char delimiter) { - byte bytes[] = source.getBytes(UTF8); + byte bytes[] = source.getBytes(StandardCharsets.UTF_8); ByteArrayOutputStream result = new ByteArrayOutputStream(); for (byte b : bytes) { int val = b; @@ -86,11 +84,11 @@ public class StringUtilities { result.write(replacementCharacters.replacement2[val]); } } - return new String(result.toByteArray(), UTF8); + return new String(result.toByteArray(), StandardCharsets.UTF_8); } public static String unescape(String source) { - byte bytes[] = source.getBytes(UTF8); + byte bytes[] = source.getBytes(StandardCharsets.UTF_8); ByteArrayOutputStream result = new ByteArrayOutputStream(); for (int i=0; i<bytes.length; ++i) { if (bytes[i] != '\\') { @@ -120,7 +118,7 @@ public class StringUtilities { result.write((byte) Integer.parseInt(hexdigits, 16)); i += 3; } - return new String(result.toByteArray(), UTF8); + return new String(result.toByteArray(), StandardCharsets.UTF_8); } /** diff --git a/vespajlib/src/test/java/com/yahoo/io/ByteWriterTestCase.java b/vespajlib/src/test/java/com/yahoo/io/ByteWriterTestCase.java index c6278133d4c..77967bb08fa 100644 --- a/vespajlib/src/test/java/com/yahoo/io/ByteWriterTestCase.java +++ b/vespajlib/src/test/java/com/yahoo/io/ByteWriterTestCase.java @@ -1,23 +1,23 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.io; -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; +import com.yahoo.text.Utf8; +import com.yahoo.text.Utf8Array; +import org.junit.Test; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; import java.nio.ByteBuffer; -import java.nio.charset.Charset; import java.nio.charset.CharsetEncoder; +import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.IdentityHashMap; -import com.yahoo.text.Utf8; -import com.yahoo.text.Utf8Array; -import org.junit.Test; +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; /** * Test the ByteWriter class. ByteWriter is also implicitly tested in @@ -27,7 +27,7 @@ import org.junit.Test; */ public class ByteWriterTestCase { - private final CharsetEncoder encoder = Charset.forName("UTF-8").newEncoder(); + private final CharsetEncoder encoder = StandardCharsets.UTF_8.newEncoder(); private final ByteArrayOutputStream stream = new ByteArrayOutputStream(); /** @@ -281,7 +281,7 @@ public class ByteWriterTestCase { @Test public void testUnMappableCharacter() throws java.io.IOException { ByteArrayOutputStream stream = new ByteArrayOutputStream(); - ByteWriter writer = new ByteWriter(stream, Charset.forName("ascii").newEncoder()); + ByteWriter writer = new ByteWriter(stream, StandardCharsets.US_ASCII.newEncoder()); writer.write("yahoo\u9999bahoo"); writer.close(); assertTrue(stream.toString("ascii").contains("yahoo")); diff --git a/vespajlib/src/test/java/com/yahoo/io/FileReadTestCase.java b/vespajlib/src/test/java/com/yahoo/io/FileReadTestCase.java index 1acd225b18a..4769562db89 100644 --- a/vespajlib/src/test/java/com/yahoo/io/FileReadTestCase.java +++ b/vespajlib/src/test/java/com/yahoo/io/FileReadTestCase.java @@ -1,4 +1,4 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.io; import org.junit.Test; @@ -6,7 +6,7 @@ import org.junit.Test; import java.io.File; import java.io.IOException; import java.io.StringReader; -import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -16,15 +16,15 @@ public class FileReadTestCase { @Test public void testReadByteArray() throws IOException { byte[] thisFile = IOUtils.readFileBytes(new File("src/test/java/com/yahoo/io/FileReadTestCase.java")); - String str = new String(thisFile, Charset.forName("US-ASCII")); - assertTrue(str.startsWith("// Copyright 2017 Yahoo Holdings.")); + String str = new String(thisFile, StandardCharsets.US_ASCII); + assertTrue(str.startsWith("// Copyright Verizon Media.")); assertTrue(str.endsWith("// Yeppers\n")); } @Test public void testReadString() throws IOException { String str = IOUtils.readFile(new File("src/test/java/com/yahoo/io/FileReadTestCase.java")); - assertTrue(str.startsWith("// Copyright 2017 Yahoo Holdings.")); + assertTrue(str.startsWith("// Copyright Verizon Media.")); assertTrue(str.endsWith("// Yeppers\n")); } diff --git a/vespajlib/src/test/java/com/yahoo/io/HexDumpTestCase.java b/vespajlib/src/test/java/com/yahoo/io/HexDumpTestCase.java index dcea8101d9c..d250338b8fe 100644 --- a/vespajlib/src/test/java/com/yahoo/io/HexDumpTestCase.java +++ b/vespajlib/src/test/java/com/yahoo/io/HexDumpTestCase.java @@ -1,28 +1,19 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.io; import org.junit.Test; -import com.yahoo.text.Utf8; - -import java.io.ByteArrayOutputStream; -import java.io.PrintStream; -import java.io.UnsupportedEncodingException; -import java.nio.ByteBuffer; -import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; /** * @author Simon Thoresen Hult - * @author <a href="mailto:steinar@yahoo-inc.com">Steinar Knutsen</a> + * @author Steinar Knutsen */ public class HexDumpTestCase { - private static final Charset UTF8 = Charset.forName("UTF-8"); - private static final Charset UTF16 = Charset.forName("UTF-16"); - @Test public void requireThatToHexStringAcceptsNull() { assertNull(HexDump.toHexString(null)); @@ -31,10 +22,10 @@ public class HexDumpTestCase { @Test public void requireThatToHexStringIsUnformatted() { assertEquals("6162636465666768696A6B6C6D6E6F707172737475767778797A", - HexDump.toHexString("abcdefghijklmnopqrstuvwxyz".getBytes(UTF8))); + HexDump.toHexString("abcdefghijklmnopqrstuvwxyz".getBytes(StandardCharsets.UTF_8))); assertEquals("FEFF006100620063006400650066006700680069006A006B006C00" + "6D006E006F0070007100720073007400750076007700780079007A", - HexDump.toHexString("abcdefghijklmnopqrstuvwxyz".getBytes(UTF16))); + HexDump.toHexString("abcdefghijklmnopqrstuvwxyz".getBytes(StandardCharsets.UTF_16))); } } |