Example usage for org.apache.commons.io.input ReversedLinesFileReader ReversedLinesFileReader

List of usage examples for org.apache.commons.io.input ReversedLinesFileReader ReversedLinesFileReader

Introduction

In this page you can find the example usage for org.apache.commons.io.input ReversedLinesFileReader ReversedLinesFileReader.

Prototype

public ReversedLinesFileReader(final File file) throws IOException 

Source Link

Document

Creates a ReversedLinesFileReader with default block size of 4KB and the platform's default encoding.

Usage

From source file:com.kajj.tools.logviewer.LogRepository.java

/**
 * Returns the last <code>numberOfLines</code> lines from the log file.
 *
 * @param fileName the name of the log file.
 * @param numberOfLines the number of lines to return.
 * @return The last <code>numberOfLines</code> lines in the log file.
 * @throws IOException if an I/O exception occurs reading the log file.
 *//*from w w w. j a  va2  s. com*/
public List<String> getTailLog(final String fileName, final int numberOfLines) throws IOException {
    final File logFile = new File(LOG_DIRECTORY, fileName);
    final ReversedLinesFileReader reader = new ReversedLinesFileReader(logFile);
    final LinkedList<String> logs = new LinkedList<>();
    for (int i = 0; i < numberOfLines; i++) {
        final String line = reader.readLine();
        if (line == null) {
            break;
        }

        logs.addFirst(line);
    }

    return logs;
}

From source file:com.hotwire.test.steps.application.IosApplication.java

@Override
public void verifyAnalytics(String analyticsParams) {
    String fileName = (System.getProperty("user.dir")).substring(0,
            System.getProperty("user.dir").lastIndexOf("/")) + "/appium.log";
    logger.info("Analytics parameters from feature file : " + analyticsParams);
    StringBuilder badParams = new StringBuilder("");

    try (ReversedLinesFileReader rlr = new ReversedLinesFileReader(new File(fileName))) {
        String analytics = getExpectedAnalytics(analyticsParams);
        logger.info("Expected analytics values from xml file: " + analytics);
        String[] analyticsValuePairs = analytics.split(";");
        String sCurrentLine;/*from  w  w w . j  ava  2 s  .  c o  m*/
        boolean isAnalyticsPresent = false;
        while ((sCurrentLine = rlr.readLine()) != null && !isAnalyticsPresent) {
            if (sCurrentLine.contains("<analytics_log>")) {
                logger.info("Analytics log from appium log file : " + sCurrentLine.substring(
                        sCurrentLine.indexOf("<analytics_log>"), sCurrentLine.indexOf("</analytics_log>")));
                isAnalyticsPresent = sCurrentLine.contains(analytics);
                for (String s : analyticsValuePairs) {
                    isAnalyticsPresent = sCurrentLine.contains(s);
                    if (!isAnalyticsPresent) {
                        badParams.append(s);
                        break;
                    }
                    if (!(badParams.toString().isEmpty()))
                        break;
                }
                if (!(badParams.toString().isEmpty()))
                    break;
            }
            if (!(badParams.toString().isEmpty()))
                break;
        }
        assertThat(isAnalyticsPresent).as("Analytics " + analyticsParams + "  with paramaters  " + badParams
                + " isn't present or incorrect. Please check this situation").isTrue();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:dbseer.gui.user.DBSeerDataSetPath.java

public int getNumTransactionType() {
    if (this.avgLatency.isEmpty()) {
        return 0;
    }/*from w w w.j  a va  2  s  . c om*/

    // use the last line of average latency file to get num tx types.
    File avgLatencyFile = new File(this.avgLatency);
    if (avgLatencyFile == null || !avgLatencyFile.exists() || avgLatencyFile.length() == 0) {
        return 0;
    }

    try {
        ReversedLinesFileReader reverseFileReader = new ReversedLinesFileReader(avgLatencyFile);
        String line = reverseFileReader.readLine(); // read last line.
        String[] tokens = line.trim().split("\\s+");
        reverseFileReader.close();
        return (tokens.length - 1);
    } catch (IOException e) {
        e.printStackTrace();
        return 0;
    }
}

From source file:com.kotcrab.vis.editor.util.CrashReporter.java

private void printLog() throws IOException {
    println("--- Log file (last 200 lines) ---");

    ReversedLinesFileReader reader = new ReversedLinesFileReader(logFile);
    Array<String> logLines = new Array<>();

    for (int i = 0; i < 200; i++) {
        String line = reader.readLine();
        if (line == null)
            break;
        logLines.add(line);/*  w  ww. java 2 s .  c o m*/
    }

    logLines.reverse();

    for (String s : logLines)
        println(s);

    println("---------------------------------");
    println();
}

From source file:it.serverSystem.LogsTest.java

private String readLastAccessLog() throws IOException {
    try (ReversedLinesFileReader tailer = new ReversedLinesFileReader(accessLogsFile())) {
        return tailer.readLine();
    }/*ww w  .ja v  a 2  s.  c  o  m*/
}

From source file:com.enioka.jqm.api.ServiceSimple.java

@GET
@Path("enginelog")
@Produces(MediaType.TEXT_PLAIN)/*from  w w  w .  jav  a2  s.  c o m*/
public String getEngineLog(@QueryParam("latest") int latest) {
    // Failsafe
    if (latest > 10000) {
        latest = 10000;
    }

    ReversedLinesFileReader r = null;
    try {
        File f = new File(
                FilenameUtils.concat("./logs/", "jqm-" + context.getInitParameter("jqmnode") + ".log"));
        r = new ReversedLinesFileReader(f);
        StringBuilder sb = new StringBuilder(latest);
        String buf = r.readLine();
        int i = 1;
        while (buf != null && i <= latest) {
            sb.append(buf);
            sb.append(System.getProperty("line.separator"));
            i++;
            buf = r.readLine();
        }
        return sb.toString();
    } catch (Exception e) {
        throw new ErrorDto("Could not return the desired file", 8, e, Status.NO_CONTENT);
    } finally {
        IOUtils.closeQuietly(r);
    }
}

From source file:com.hellblazer.process.impl.AbstractManagedProcess.java

@Override
public String getStdErrTail(int numLines) throws IOException {
    if (!getStdErrFile().exists()) {
        throw new IllegalThreadStateException("Process has not been started or has already exited");
    }//from   ww w .ja va 2 s  .  c om
    List<String> lines = new ArrayList<>();
    try (ReversedLinesFileReader reader = new ReversedLinesFileReader(getStdErrFile())) {
        int linesRead = 0;
        String line;
        while (((line = reader.readLine()) != null) && (linesRead++ < numLines)) {
            lines.add(line);
        }
    }
    Collections.reverse(lines);
    StringBuilder builder = new StringBuilder();
    for (String line : lines) {
        builder.append(line);
        builder.append('\n');
    }
    return builder.toString();
}

From source file:edu.sjsu.pokemonclassifier.classification.UserPreferenceInfo.java

/**
 * Modified by sidmishraw -- closed reading and writing streams
 * @param dataRow//  ww  w.  ja va2s  .c  om
 */
private void writeInfoToFile(String dataRow) {

    BufferedWriter bufferedWriter = null;
    ReversedLinesFileReader rLinesFileReader = null;

    try {

        int labelIndex = 0;

        File userStoredData = new File(fileName);

        System.out.println("FIle: " + userStoredData.getAbsolutePath());

        if (!userStoredData.exists()) {

            userStoredData.createNewFile();

            System.out.println("DEBUG INFO :: Created file " + fileName);
        } else {

            rLinesFileReader = new ReversedLinesFileReader(userStoredData);

            String bottomLine = rLinesFileReader.readLine();

            System.out.println("DEBUG INFO :: line read " + bottomLine);

            String[] tokens = bottomLine.split(" ");

            labelIndex = Integer.parseInt(tokens[0]) + 1;
        }

        numOfLikedPokemon = labelIndex + 1;

        // ToDo:
        //   Set a limit of file writing.
        //   Need to write in specific line

        String line = String.format("%d %s", labelIndex, dataRow);

        bufferedWriter = new BufferedWriter(new FileWriter(userStoredData, true));

        bufferedWriter.write(line + "\n");
    } catch (IOException e) {
        System.out.println("COULD NOT WRITE TO FILE!!");
    } finally {

        if (null != rLinesFileReader) {

            try {

                rLinesFileReader.close();
            } catch (IOException e) {

                e.printStackTrace();
            }
        }

        if (null != bufferedWriter) {

            try {

                bufferedWriter.close();
            } catch (IOException e) {

                e.printStackTrace();
            }
        }
    }
}

From source file:com.hellblazer.process.impl.AbstractManagedProcess.java

@Override
public String getStdOutTail(int numLines) throws IOException {
    if (!getStdOutFile().exists()) {
        throw new IllegalThreadStateException("Process has not been started or has already exited");
    }/*from   w w w  . ja v  a2  s  . com*/
    List<String> lines = new ArrayList<>();
    try (ReversedLinesFileReader reader = new ReversedLinesFileReader(getStdOutFile())) {
        int linesRead = 0;
        String line;
        while (((line = reader.readLine()) != null) && (linesRead++ < numLines)) {
            lines.add(line);
        }
    }
    Collections.reverse(lines);
    StringBuilder builder = new StringBuilder();
    for (String line : lines) {
        builder.append(line);
        builder.append('\n');
    }
    return builder.toString();
}

From source file:dbseer.gui.user.DBSeerDataSet.java

public long getEndTime() {
    if (!loadDatasetPath()) {
        return -1;
    }//from w ww . j  a v a  2s.co  m

    if (datasetPathList.isEmpty()) {
        return -1;
    }

    DBSeerDataSetPath path = datasetPathList.get(0);
    String latencyPath = path.getAvgLatency();
    File latencyFile = new File(latencyPath);

    try {
        ReversedLinesFileReader lastLineReader = new ReversedLinesFileReader(latencyFile);
        String lastLine = lastLineReader.readLine();

        return this.getTimestamp(lastLine);
    } catch (FileNotFoundException e) {
        return -1;
    } catch (IOException e) {
        return -1;
    }

}