From f1250d6b5a5891fd08f6e4d7180efa86a86115bb Mon Sep 17 00:00:00 2001 From: "Begerad, Stefan" Date: Wed, 2 Mar 2022 10:21:29 +0100 Subject: [PATCH] feat(lines-scanner): initial commit --- lines-scanner/.gitignore | 31 +++++++ lines-scanner/pom.xml | 86 +++++++++++++++++++ .../java/de/swingbe/lines_scanner/Main.java | 66 ++++++++++++++ 3 files changed, 183 insertions(+) create mode 100644 lines-scanner/.gitignore create mode 100644 lines-scanner/pom.xml create mode 100644 lines-scanner/src/main/java/de/swingbe/lines_scanner/Main.java diff --git a/lines-scanner/.gitignore b/lines-scanner/.gitignore new file mode 100644 index 0000000..33653da --- /dev/null +++ b/lines-scanner/.gitignore @@ -0,0 +1,31 @@ + +# Files +.classpath +.externalToolBuilders +.gradle +.project +.pydevproject +.settings +.sonar +*~ +*.ipr +*.iml +*.iws +*.swp +*.DS_Store +*.snap.debug +dependency-reduced-pom.xml + +# Directories +.idea/ +.run/ +.venv/ +_site/ +build/ +dist/ +docs/_build/ +gen-java/ +gen-javabean/ +gen-py/ +node_modules/ +target/ diff --git a/lines-scanner/pom.xml b/lines-scanner/pom.xml new file mode 100644 index 0000000..a5b7f3e --- /dev/null +++ b/lines-scanner/pom.xml @@ -0,0 +1,86 @@ + + + 4.0.0 + + lines_scanner + description + https://swingbe.de + de.swingbe + lines_scanner + 0.0.1 + jar + + + + GNU General Public License + https://www.gnu.org/licenses/gpl-3.0.txt + + + + + https://github.com/Software-Ingenieur-Begerad/sandbox-java + + + + + UTF-8 + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + + 11 + + + + org.apache.maven.plugins + maven-shade-plugin + 3.2.1 + + + package + + shade + + + + + + *:* + + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + + + + + true + + shaded + + + + + de.swingbe.lines_scanner.Main + + + + + + + + + + + diff --git a/lines-scanner/src/main/java/de/swingbe/lines_scanner/Main.java b/lines-scanner/src/main/java/de/swingbe/lines_scanner/Main.java new file mode 100644 index 0000000..32305d2 --- /dev/null +++ b/lines-scanner/src/main/java/de/swingbe/lines_scanner/Main.java @@ -0,0 +1,66 @@ +package de.swingbe.lines_scanner; + +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.Scanner; + +public class Main { + + static void usage() { + System.err.println("usage: java Main file"); + System.exit(-1); + } + + + private static void lines_scanner(Path pathFile) { + FileInputStream inputStream = null; + Scanner sc = null; + try { + inputStream = new FileInputStream(pathFile.toString()); + sc = new Scanner(inputStream, StandardCharsets.UTF_8); + int count = 0; + while (sc.hasNextLine()) { + String line = sc.nextLine(); + // System.out.println(line); + count++; + } + System.out.println("count: " + count); + // note that Scanner suppresses exceptions + if (sc.ioException() != null) { + throw sc.ioException(); + } + } catch (IOException e) { + e.printStackTrace(); + } finally { + if (inputStream != null) { + try { + inputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if (sc != null) { + sc.close(); + } + } + } + + public static void main(String[] args) { + System.out.println("Hello world!"); + + // parse arguments + if (args.length == 0 || args.length > 2) usage(); + + int fileArg = 0; + + // get lines count + Path pathFile = Paths.get(args[fileArg]); + System.out.println("pathFile: " + pathFile); + lines_scanner(pathFile); + + return; + } +}