使用mysql查询结果输出在标准输出流中,可以直接重定向到一个文件中。列的分隔是tab符,列分隔是LF符。如果想转化为cvs格式,可以通过下列Java程序进行转码。
public class TsvToCsvMain {
public static void main(String[] args) throws Exception {
// String input = "F:\\ttdata\\td-android-1000.xls";
// processFile(input);
String[] inputs = new String[] {"F://ttdata/td-detail//t-android_td-part-aa","F://ttdata/td-detail//t-android_td-part-ab","F://ttdata/td-detail//t-android_td-part-ac","F://ttdata/td-detail//t-android_td-part-ad","F://ttdata/td-detail//t-android_td-part-ae","F://ttdata/td-detail//t-android_td-part-af","F://ttdata/td-detail//t-ios_td-part-aa","F://ttdata/td-detail//t-ios_td-part-ab","F://ttdata/td-detail//t-ios_td-part-ac","F://ttdata/td-detail//t-ios_td-part-ad","F://ttdata/td-detail//t-ios_td-part-ae","F://ttdata/td-detail//t-ios_td-part-af"};
Stream.of(inputs).forEach(t -> {
try {
processFile(t);
} catch (Exception e) {
e.printStackTrace();
}
});
}
public static void processFile(String input) throws Exception {
System.out.println("process " + input);
String output = input + ".csv";
BufferedReader br = new BufferedReader(new FileReader(input));
BufferedWriter bw = new BufferedWriter(new FileWriter(output));
String ln = null;
while((ln = br.readLine())!=null) {
bw.write(transferLine(ln) + "\"\r\n");
}
bw.close();
br.close();
}
public static String transferLine(String line) {
return "\""+line.replaceAll("\"", "\"\"").replaceAll("\t", "\",\"");
}
}