带分隔符的csv

wtzytmuj  于 2021-06-24  发布在  Hive
关注(0)|答案(1)|浏览(446)

代码i如下所示,基本上将unicode字符处理为\u0001并将其用作分隔符。也可以使用csv库来生成csv。
代码i如下所示,基本上将unicode字符处理为\u0001并将其用作分隔符。也可以使用csv库来生成csv。

  1. import java.io.File;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import java.nio.charset.Charset;
  5. import java.util.ArrayList;
  6. import java.util.List;
  7. import java.util.stream.Collectors;
  8. import java.util.stream.Stream;
  9. public class TestCsv {
  10. private static final String CSV_FILE_NAME = "hive_out.csv";
  11. private static String delimiter = "\u0001";
  12. public static void main(String[] args) throws IOException{
  13. List<String[]> dataLines = new ArrayList<>();
  14. dataLines.add(new String[]
  15. { "John", "Doe", "38", "Manager" });
  16. dataLines.add(new String[]
  17. { "Jane", "Doe", "40", "CTO" });
  18. dataLines.add(new String[]
  19. { "Mark", "Smith", "42", "CFO" });
  20. createCsv(dataLines,CSV_FILE_NAME);
  21. }
  22. public static void createCsv(List<String[]> dataLines,String fileName) throws IOException {
  23. File csvOutputFile = new File(fileName);
  24. try (PrintWriter pw = new PrintWriter(csvOutputFile, "UTF-8")) {
  25. dataLines.stream()
  26. .map(TestCsv::convertToCSV)
  27. .forEach(line -> pw.println(line));
  28. }
  29. }
  30. public static String convertToCSV(String[] data) {
  31. return Stream.of(data)
  32. .collect(Collectors.joining(delimiter));
  33. }
  34. }
bweufnob

bweufnob1#

  1. import java.io.File;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import java.nio.charset.Charset;
  5. import java.util.ArrayList;
  6. import java.util.List;
  7. import java.util.stream.Collectors;
  8. import java.util.stream.Stream;
  9. public class TestCsv {
  10. private static final String CSV_FILE_NAME = "hive_out.csv";
  11. private static String delimiter = "\u0001";
  12. public static void main(String[] args) throws IOException{
  13. List<String[]> dataLines = new ArrayList<>();
  14. dataLines.add(new String[]
  15. { "John", "Doe", "38", "Manager" });
  16. dataLines.add(new String[]
  17. { "Jane", "Doe", "40", "CTO" });
  18. dataLines.add(new String[]
  19. { "Mark", "Smith", "42", "CFO" });
  20. createCsv(dataLines,CSV_FILE_NAME);
  21. }
  22. public static void createCsv(List<String[]> dataLines,String fileName) throws IOException {
  23. File csvOutputFile = new File(fileName);
  24. try (PrintWriter pw = new PrintWriter(csvOutputFile, "UTF-8")) {
  25. dataLines.stream()
  26. .map(TestCsv::convertToCSV)
  27. .forEach(line -> pw.println(line));
  28. }
  29. }
  30. public static String convertToCSV(String[] data) {
  31. return Stream.of(data)
  32. .collect(Collectors.joining(delimiter));
  33. }
  34. }
展开查看全部

相关问题