/*
* Copyright 2004-2014 H2 Group. Multiple-Licensed under the MPL 2.0,
* and the EPL 1.0 (http://h2database.com/html/license.html).
* Initial Developer: H2 Group
*/
package org.h2.dev.util;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.LineNumberReader;
import java.io.PrintWriter;
/**
* Convert a list of thread dumps into one line per thread.
*/
public class ThreadDumpInliner {
/**
* Usage: java ThreadDumpInliner threadDump.txt
*
* @param a the file name
*/
public static void main(String... a) throws Exception {
String fileName = a[0];
LineNumberReader in = new LineNumberReader(
new BufferedReader(new FileReader(fileName)));
PrintWriter writer = new PrintWriter(new BufferedWriter(
new FileWriter(fileName + ".lines.txt")));
StringBuilder buff = new StringBuilder();
for (String s; (s = in.readLine()) != null;) {
if (s.trim().length() == 0) {
continue;
}
if (s.startsWith(" ") || s.startsWith("\t")) {
buff.append('\t').append(s.trim());
} else {
printNonEmpty(writer, buff.toString());
buff = new StringBuilder(s);
}
}
printNonEmpty(writer, buff.toString());
in.close();
writer.close();
}
private static void printNonEmpty(PrintWriter writer, String s) {
s = s.trim();
if (!s.isEmpty()) {
writer.println(s);
}
}
}