From fe3f5c2d560d9f27984b97c9840b7572337bd420 Mon Sep 17 00:00:00 2001 From: zhangminglei <18717838093@126.com> Date: Wed, 19 May 2021 09:13:38 +0800 Subject: [PATCH] [HUDI-1913] Using streams instead of loops for input/output (#2962) --- .../apache/hudi/cli/utils/InputStreamConsumer.java | 12 ++++-------- .../common/config/DFSPropertiesConfiguration.java | 8 ++++---- .../hudi/utilities/HoodieWithTimelineServer.java | 5 +---- .../hudi/utilities/testutils/UtilitiesTestBase.java | 12 +++--------- 4 files changed, 12 insertions(+), 25 deletions(-) diff --git a/hudi-cli/src/main/java/org/apache/hudi/cli/utils/InputStreamConsumer.java b/hudi-cli/src/main/java/org/apache/hudi/cli/utils/InputStreamConsumer.java index 73aa45c50..43636f6c1 100644 --- a/hudi-cli/src/main/java/org/apache/hudi/cli/utils/InputStreamConsumer.java +++ b/hudi-cli/src/main/java/org/apache/hudi/cli/utils/InputStreamConsumer.java @@ -19,7 +19,6 @@ package org.apache.hudi.cli.utils; import java.io.BufferedReader; -import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.logging.Logger; @@ -41,13 +40,10 @@ public class InputStreamConsumer extends Thread { try { InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); - String line; - while ((line = br.readLine()) != null) { - LOG.info(line); - } - } catch (IOException ioe) { - LOG.severe(ioe.toString()); - ioe.printStackTrace(); + br.lines().forEach(LOG::info); + } catch (Exception e) { + LOG.severe(e.toString()); + e.printStackTrace(); } } diff --git a/hudi-common/src/main/java/org/apache/hudi/common/config/DFSPropertiesConfiguration.java b/hudi-common/src/main/java/org/apache/hudi/common/config/DFSPropertiesConfiguration.java index cd4ade1ef..f97e4add4 100644 --- a/hudi-common/src/main/java/org/apache/hudi/common/config/DFSPropertiesConfiguration.java +++ b/hudi-common/src/main/java/org/apache/hudi/common/config/DFSPropertiesConfiguration.java @@ -100,10 +100,9 @@ public class DFSPropertiesConfiguration { */ public void addProperties(BufferedReader reader) throws IOException { try { - String line; - while ((line = reader.readLine()) != null) { + reader.lines().forEach(line -> { if (line.startsWith("#") || line.equals("") || !line.contains("=")) { - continue; + return; } String[] split = splitProperty(line); if (line.startsWith("include=") || line.startsWith("include =")) { @@ -111,7 +110,8 @@ public class DFSPropertiesConfiguration { } else { props.setProperty(split[0], split[1]); } - } + }); + } finally { reader.close(); } diff --git a/hudi-utilities/src/main/java/org/apache/hudi/utilities/HoodieWithTimelineServer.java b/hudi-utilities/src/main/java/org/apache/hudi/utilities/HoodieWithTimelineServer.java index 49b93500c..326f56a62 100644 --- a/hudi-utilities/src/main/java/org/apache/hudi/utilities/HoodieWithTimelineServer.java +++ b/hudi-utilities/src/main/java/org/apache/hudi/utilities/HoodieWithTimelineServer.java @@ -112,10 +112,7 @@ public class HoodieWithTimelineServer implements Serializable { try (BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()))) { StringBuilder result = new StringBuilder(); - String line; - while ((line = rd.readLine()) != null) { - result.append(line); - } + rd.lines().forEach(result::append); System.out.println("Got result (" + result + ")"); return result.toString(); } catch (IOException e) { diff --git a/hudi-utilities/src/test/java/org/apache/hudi/utilities/testutils/UtilitiesTestBase.java b/hudi-utilities/src/test/java/org/apache/hudi/utilities/testutils/UtilitiesTestBase.java index 0adef5210..60f542813 100644 --- a/hudi-utilities/src/test/java/org/apache/hudi/utilities/testutils/UtilitiesTestBase.java +++ b/hudi-utilities/src/test/java/org/apache/hudi/utilities/testutils/UtilitiesTestBase.java @@ -212,14 +212,11 @@ public class UtilitiesTestBase { // to get hold of resources bundled with jar private static ClassLoader classLoader = Helpers.class.getClassLoader(); - public static String readFile(String testResourcePath) throws IOException { + public static String readFile(String testResourcePath) { BufferedReader reader = new BufferedReader(new InputStreamReader(classLoader.getResourceAsStream(testResourcePath))); StringBuffer sb = new StringBuffer(); - String line; - while ((line = reader.readLine()) != null) { - sb.append(line + "\n"); - } + reader.lines().forEach(line -> sb.append(line).append("\n")); return sb.toString(); } @@ -227,10 +224,7 @@ public class UtilitiesTestBase { BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(absolutePathForResource))); StringBuffer sb = new StringBuffer(); - String line; - while ((line = reader.readLine()) != null) { - sb.append(line + "\n"); - } + reader.lines().forEach(line -> sb.append(line).append("\n")); return sb.toString(); }