package org.ebayopensource.turmeric.tools.codegen.fastserformat.protobuf.tag; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.List; public class FileHelper { private static final String S_NEWLINE = System.getProperty("line.separator"); public static List<String> readFile(InputStream inputStream) { List<String> contents = new ArrayList<String>(); try { BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, Charset.defaultCharset())); String temp = ""; while ((temp = bufferedReader.readLine()) != null) { contents.add(temp); } return contents; } catch (Exception e) { throw new RuntimeException(e); } } public static void writeFile(OutputStream file, List<String> data) { BufferedWriter bufferedWriter = null; try { bufferedWriter = new BufferedWriter(new OutputStreamWriter(file, Charset.defaultCharset())); for(String line : data) { bufferedWriter.write(line); bufferedWriter.write(S_NEWLINE); } } catch (Exception e) { throw new RuntimeException(e); } finally { try { if(bufferedWriter!=null) { bufferedWriter.flush(); bufferedWriter.close(); } } catch (Exception e) { throw new RuntimeException(e); } } } public static int getMetadataStartIndex(List<String> data) { int startIndex=-1; int counter = 0; for(String line : data) { if(line.contains(ProtobufMetadataConstants.S_PMD_START)) { startIndex = counter; break; } counter++; } return startIndex; } }