讀取csv檔案轉化為Json
阿新 • • 發佈:2019-01-09
注:scv檔案中,每行的每列之間預設是用逗號分隔的
package com.mdl.excel.csv;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
public class CsvToJson {
// public static String getJSONFromURL(URL url, String separator) throws
// IOException {
//
// String csv = IOUtils.toString (url);
// return getJSON(csv, separator);
// }
public static String getJSONFromFile(String fileName, String separator) throws IOException {
byte[] bytes = null;
bytes = FileUtils.readFileToByteArray(new File(fileName));
String csv = new String(bytes, "GBK");
// System.out .println(csv);
return getJSON(csv, separator).replace("\r", "").replace("\n", "").replace("\b", "").replaceAll("\\s*", "");
}
public static String getJSON(String content, String separator) {
StringBuilder sb = new StringBuilder("[\n");
String csv = content;
String csvValues[] = csv.split ("\n");
String header[] = csvValues[0].split(separator);
for (int i = 1; i < csvValues.length; i++) {
sb.append("\t").append("{").append("\n");
String tmp[] = csvValues[i].split(separator);
for (int j = 0; j < tmp.length; j++) {
sb.append("\t").append("\t\"").append(header[j].replaceAll("\\s*", "").replace("\"", "")).append("\":\"")
.append(tmp[j].replaceAll("\\s*", "").replace("\"", "")).append("\"");
if (j < tmp.length - 1) {
sb.append(",\n");
} else {
sb.append("\n");
}
}
if (i < csvValues.length - 1) {
sb.append("\t},\n");
} else {
sb.append("\t}\n");
}
}
sb.append("]");
return sb.toString();
}
public static void main(String[] args) throws Exception {
System.out.println(getJSONFromFile("C:/Users/mdl/Desktop/units/test.csv", "\\,"));
}
}