diff --git a/data/weather_stations.csv b/data/weather_stations.csv index 482210967..c685915e4 100644 --- a/data/weather_stations.csv +++ b/data/weather_stations.csv @@ -1,4 +1,5 @@ # Adapted from https://simplemaps.com/data/world-cities +# Licensed under Creative Commons Attribution 4.0 (https://creativecommons.org/licenses/by/4.0/ Tokyo;35.6897 Jakarta;-6.1750 Delhi;28.6100 diff --git a/src/main/java/dev/morling/onebrc/CreateMeasurements3.java b/src/main/java/dev/morling/onebrc/CreateMeasurements3.java index 0b3f9c386..fb3a97d8c 100644 --- a/src/main/java/dev/morling/onebrc/CreateMeasurements3.java +++ b/src/main/java/dev/morling/onebrc/CreateMeasurements3.java @@ -71,7 +71,7 @@ private static ArrayList generateWeatherStations() throws Except // which we'll use as a "source of city name randomness" var bigName = new StringBuilder(1 << 20); try (var rows = new BufferedReader(new FileReader("data/weather_stations.csv"));) { - rows.readLine(); // Skip the attribution line + skipComments(rows); while (true) { var row = rows.readLine(); if (row == null) { @@ -85,7 +85,7 @@ private static ArrayList generateWeatherStations() throws Except var minLen = Integer.MAX_VALUE; var maxLen = Integer.MIN_VALUE; try (var rows = new BufferedReader(new FileReader("data/weather_stations.csv"))) { - rows.readLine(); // Skip the attribution line + skipComments(rows); final var nameSource = new StringReader(bigName.toString()); final var buf = new char[MAX_NAME_LEN]; final var rnd = ThreadLocalRandom.current(); @@ -146,6 +146,11 @@ private static ArrayList generateWeatherStations() throws Except return weatherStations; } + private static void skipComments(BufferedReader rows) throws IOException { + while (rows.readLine().startsWith("#")) { + } + } + private static char readNonSpace(StringReader nameSource) throws IOException { while (true) { var n = nameSource.read();