代码i如下所示,基本上将unicode字符处理为\u0001并将其用作分隔符。也可以使用csv库来生成csv。
代码i如下所示,基本上将unicode字符处理为\u0001并将其用作分隔符。也可以使用csv库来生成csv。
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class TestCsv {
private static final String CSV_FILE_NAME = "hive_out.csv";
private static String delimiter = "\u0001";
public static void main(String[] args) throws IOException{
List<String[]> dataLines = new ArrayList<>();
dataLines.add(new String[]
{ "John", "Doe", "38", "Manager" });
dataLines.add(new String[]
{ "Jane", "Doe", "40", "CTO" });
dataLines.add(new String[]
{ "Mark", "Smith", "42", "CFO" });
createCsv(dataLines,CSV_FILE_NAME);
}
public static void createCsv(List<String[]> dataLines,String fileName) throws IOException {
File csvOutputFile = new File(fileName);
try (PrintWriter pw = new PrintWriter(csvOutputFile, "UTF-8")) {
dataLines.stream()
.map(TestCsv::convertToCSV)
.forEach(line -> pw.println(line));
}
}
public static String convertToCSV(String[] data) {
return Stream.of(data)
.collect(Collectors.joining(delimiter));
}
}
1条答案
按热度按时间bweufnob1#