From 2aa69e37804ee0fa78d46f70bdf4db4f91f2e480 Mon Sep 17 00:00:00 2001 From: Lunarantic <26676464+Lunarantic@users.noreply.github.com> Date: Mon, 10 Dec 2018 00:51:23 -0500 Subject: [PATCH 1/3] Create FileUtility.java --- utilities/files/FileUtility.java | 79 ++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 utilities/files/FileUtility.java diff --git a/utilities/files/FileUtility.java b/utilities/files/FileUtility.java new file mode 100644 index 0000000..170a2e4 --- /dev/null +++ b/utilities/files/FileUtility.java @@ -0,0 +1,79 @@ +package utilities.files; + +import java.io.BufferedWriter; +import java.io.Closeable; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileWriter; +import java.io.IOException; +import java.io.InputStream; + +public class FileUtility { + + public static boolean deleteFile(String fileName) { + File file = new File(fileName); + return file.delete(); + } + + public static String readFile(File file) { + try { + return readFile(new FileInputStream(file)); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } + return ""; + } + + public static String readFile(InputStream inputStream) { + + StringBuilder stringBuilder = new StringBuilder(); + int ch; + try { + while ((ch = inputStream.read()) != -1) { + stringBuilder.append((char) ch); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + close(inputStream); + } + return stringBuilder.toString(); + } + + public static String readFile(String filePath) { + File file = new File(filePath); + return readFile(file); + } + + public static void writeTotFile(String fileName, String content) { + FileWriter fileWriter = null; + BufferedWriter bufferedWriter = null; + try { + File file = new File(fileName); + if (!file.exists()) { + file.createNewFile(); + } + fileWriter = new FileWriter(fileName, true); + bufferedWriter = new BufferedWriter(fileWriter); + bufferedWriter.write(content); + bufferedWriter.flush(); + + } catch (IOException e) { + e.printStackTrace(); + } finally { + close(bufferedWriter); + close(fileWriter); + } + } + + public static void close(Closeable closeable) { + if (null != closeable) { + try { + closeable.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} From ef1c84bc51d166fa6e3c9753b908ed67bc86a8cd Mon Sep 17 00:00:00 2001 From: Lunarantic <26676464+Lunarantic@users.noreply.github.com> Date: Mon, 10 Dec 2018 23:10:38 -0500 Subject: [PATCH 2/3] added file copying functionality --- utilities/files/FileUtility.java | 123 +++++++++++++++++-------------- 1 file changed, 68 insertions(+), 55 deletions(-) diff --git a/utilities/files/FileUtility.java b/utilities/files/FileUtility.java index 170a2e4..c6a059d 100644 --- a/utilities/files/FileUtility.java +++ b/utilities/files/FileUtility.java @@ -1,79 +1,92 @@ package utilities.files; -import java.io.BufferedWriter; -import java.io.Closeable; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileWriter; -import java.io.IOException; -import java.io.InputStream; +import java.io.*; public class FileUtility { public static boolean deleteFile(String fileName) { - File file = new File(fileName); - return file.delete(); + return (new File(fileName)).delete(); } - public static String readFile(File file) { - try { - return readFile(new FileInputStream(file)); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } - return ""; - } - - public static String readFile(InputStream inputStream) { - + public static String readFile(InputStream inputStream) throws IOException { StringBuilder stringBuilder = new StringBuilder(); int ch; try { while ((ch = inputStream.read()) != -1) { stringBuilder.append((char) ch); } - } catch (Exception e) { - e.printStackTrace(); } finally { close(inputStream); } return stringBuilder.toString(); } - public static String readFile(String filePath) { - File file = new File(filePath); - return readFile(file); + public static String readFile(File file) throws IOException { + return readFile(new FileInputStream(file)); + } + + public static String readFile(String fileName) throws IOException { + return readFile(new FileInputStream(fileName)); } - public static void writeTotFile(String fileName, String content) { - FileWriter fileWriter = null; - BufferedWriter bufferedWriter = null; - try { - File file = new File(fileName); - if (!file.exists()) { - file.createNewFile(); - } - fileWriter = new FileWriter(fileName, true); - bufferedWriter = new BufferedWriter(fileWriter); - bufferedWriter.write(content); - bufferedWriter.flush(); + public static void writeToFile(FileWriter fileWriter, String content) throws IOException { + BufferedWriter bufferedWriter = null; + try { + bufferedWriter = new BufferedWriter(fileWriter); + bufferedWriter.write(content); + bufferedWriter.flush(); + } finally { + close(bufferedWriter); + close(fileWriter); + } + } - } catch (IOException e) { - e.printStackTrace(); - } finally { - close(bufferedWriter); - close(fileWriter); - } - } - - public static void close(Closeable closeable) { - if (null != closeable) { - try { - closeable.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } + public static void writeToFile(File file, String content) throws IOException { + if (!file.exists()) { + file.createNewFile(); + } + writeToFile(new FileWriter(file, true), content); + } + + public static void writeToFile(String fileName, String content) throws IOException { + File file = new File(fileName); + if (!file.exists()) { + file.createNewFile(); + } + writeToFile(new FileWriter(fileName, true), content); + } + + public static void copyFile(FileInputStream fileInputStream, FileOutputStream fileOutputStream) throws IOException { + try { + byte[] buf = new byte[1024]; + int i; + while ((i = fileInputStream.read(buf)) != -1) + fileOutputStream.write(buf, 0 , i); + } finally { + close(fileInputStream); + close(fileOutputStream); + } + } + + public static void copyFile(File input, File output) throws IOException { + if (!input.exists()) + return; + if (!output.exists()) + output.createNewFile(); + copyFile(new FileInputStream(input), new FileOutputStream(output)); + } + + public static void copyFile(String inputFileName, String outputFileName) throws IOException { + copyFile(new FileInputStream(inputFileName), new FileOutputStream(outputFileName)); + } + + public static void close(Closeable closeable) { + if (null != closeable) { + try { + closeable.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } } From 6d603f96db68138d0363c915851bf223b8464b38 Mon Sep 17 00:00:00 2001 From: Lunarantic <26676464+Lunarantic@users.noreply.github.com> Date: Wed, 19 Jun 2019 20:25:38 -0400 Subject: [PATCH 3/3] Added functionality to read integers Can read integers separated by commas and/spaces into array --- utilities/files/FileUtility.java | 66 ++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/utilities/files/FileUtility.java b/utilities/files/FileUtility.java index c6a059d..5a8e9c6 100644 --- a/utilities/files/FileUtility.java +++ b/utilities/files/FileUtility.java @@ -1,6 +1,8 @@ package utilities.files; import java.io.*; +import java.util.LinkedList; +import java.util.List; public class FileUtility { @@ -89,4 +91,68 @@ public static void close(Closeable closeable) { } } } + + public static List readFileLines(InputStream inputStream) throws IOException { + List lines = new LinkedList<>(); + StringBuilder stringBuilder = new StringBuilder(); + int ch; + try { + while ((ch = inputStream.read()) != -1) { + if (ch == '\n') { + lines.add(stringBuilder.toString()); + stringBuilder = new StringBuilder(); + } else { + stringBuilder.append((char) ch); + } + } + } finally { + close(inputStream); + } + return lines; + } + + public static List readFileLines(File file) throws IOException { + return readFileLines(new FileInputStream(file)); + } + + public static List readFileLines(String fileName) throws IOException { + return readFileLines(new FileInputStream(fileName)); + } + + public static Integer[][] readNumberInLines(InputStream inputStream) throws IOException { + List lines = new LinkedList<>(); + StringBuilder stringBuilder = new StringBuilder(); + String[] line; + Integer[] n; + int ch; + try { + while ((ch = inputStream.read()) != -1) { + if (ch == '\n') { + line = stringBuilder.toString().trim().split("\\s*(=>|,|\\s)\\s*"); + n = new Integer[line.length]; + for (int i = 0; i < line.length; ++i) { + n[i] = Integer.parseInt(line[i]); + } + lines.add(n); + stringBuilder = new StringBuilder(); + } else { + stringBuilder.append((char) ch); + } + } + } finally { + close(inputStream); + } + + Integer[][] res = {}; + + return lines.toArray(res); + } + + public static Integer[][] readNumberInLines(File file) throws IOException { + return readNumberInLines(new FileInputStream(file)); + } + + public static Integer[][] readNumberInLines(String fileName) throws IOException { + return readNumberInLines(new FileInputStream(fileName)); + } }