首页 > 解决方案 > CSV阅读器丢失转义字符

问题描述

我正在尝试读取包含以下信息的文件:

"message":"{\"n_number\":\"000116314\"}

当我尝试使用 CSVReader 时,我丢失了转义字符()。当我直接使用 BufferedReader 时,我可以保留转义字符。如何修改使用 CSVReader 的代码以保留转义字符?

失败的代码

    BufferedReader reader = new BufferedReader(new InputStreamReader(input));
    Character delimiter = '\u0001';

    CSVReader csvReader = new CSVReaderBuilder(reader)
            .withCSVParser(new CSVParserBuilder()
                    .withSeparator(delimiter).build()).build();

    List<Map<String, Object>> output = new ArrayList<>();

    mappingStrategy.setColumnMapping(columns);
    mappingStrategy.setType(MyData.class);
    CsvToBean<MyData> csvbean = new CsvToBean<MyData>();
    csvbean.setCsvReader(csvReader);
    csvbean.setMappingStrategy(mappingStrategy);
    List<MyData> myData = csvbean.parse();

这会产生:

"message":"{"n_number":"000116314"}

工作代码

        StringBuilder resultStringBuilder = new StringBuilder();
        BufferedReader reader = new BufferedReader(new InputStreamReader(input));
        String line;
        while ((line = reader.readLine()) != null) {
            resultStringBuilder.append(line).append("\n");
        }

标签: java

解决方案


推荐阅读