问题标签 [supercsv]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 读取 .tsv 文件时跳过交替行
我有一个 .tsv 文件,其中最后一列有 39 列,但一列的数据为字符串,其长度超过 100,000 个字符现在发生的事情是当我尝试读取文件时,第 1 行有标题,然后数据如下
发生的事情是它在读取第 1 行之后它转到第 3 行然后第 5 行然后第 7 行虽然所有行都有相同的数据在我得到的日志之后
以下是我的代码:
请让我知道我哪里出错了
java - 使用 super-csv 将列添加到现有 csv 文件
我承认我不是一个伟大的 Java 程序员,可能我的问题很愚蠢。我需要在不同的地方添加新列到现有的 csv 文件中。我正在使用超级 csv 库。
我的输入文件是这样的
如您所见,我没有(或不需要)标题。我需要在 column(2) 中添加一列,并在每行末尾添加一列以获得:
从我得到的库文档中(我错了吗?)我不能直接修改原始文件,但最好的办法是读取它并将其写回。我想使用CsvMapReader和CsvMapwriter可能是一个不错的选择。但是如何在现有列之间添加列?我应该分别阅读现有列的每个字段,我试图在库文档中找到建议,但我不明白该怎么做。
csv - supercsv写作表格数据库
我在 SuperCSV 写作方面遇到了一些问题。我创建了一个 Web 应用程序模块来从 DB 导出 CSV 文件。所以问题是我如何使用 CustomerBean 我找到了这段代码,但这里的客户是静态的:
我得到这个结果:无法在类 jaca.util.HashMap 中找到归档名字的 getter -检查相应的 nameMapping 元素是否与 bean 中的归档名称匹配
csv - 如何始终在 Super CSV 中应用引号(转义)
我想把我的文件 csv 这样的形式:
"用户 2";"网页" ;"AbdelMonem NAAMANE";;;;
我像这样制作自己的 Csv Preference:
private static final CsvPreference myPreference = new CsvPreference.Builder('"',';''\n').build();
我想要这样的标题"User 2";"Web Page"
java - 如何使用类路径来指定文件位置?
这是我的maven项目的结构:
main 和 test 文件夹在 src 文件夹下,java 和 resources 文件夹在 main 文件夹下,在 resources 文件夹中,有一个 csv 文件可供读取。
据我所知,
InputStream file = ClassLoader.getSystemResourceAsStream("test.csv");
可以在资源文件中获取文件内容。
但是,为了基于 supercsv 库读取和解析 csv 文件,我必须使用以下代码,但 CsvBeanReader 方法不接受 InputStream。
那么我怎样才能不仅从基于maven结构的资源文件夹中获取文件,而且CsvBeanReader也可以接受传入的参数。
java - supercsv如何按列名获取列值数组
以下是 csv 文件的示例:
客户编号、名字、姓氏、出生日期、邮寄地址、已婚、孩子数量、最喜欢的报价、电子邮件、忠诚度积分
1,John,Dunbar,13/06/1945,"1600 Amphitheatre Parkway Mountain View, CA 94043 United States",,,""愿原力与你同在。"" - 星球大战",jdunbar@gmail.com, 0
2,Bob,Down,25/02/1919,"1601 Willow Rd. Menlo Park, CA 94025 United States",Y,0,"""坦率地说,亲爱的,我不在乎。"" -乱世佳人”,bobdown@hotmail.com,123456
例如,如何获取所有列值属于姓氏?
我希望结果应该是 [Dunbar, Down]。
我试图搜索文档,但找不到任何有用的示例。
还有一个问题是,getLineNumber() 方法的含义是什么?我读过文档,上面写着“获取文件中的当前位置。文件的第一行是第 1 行。” 但我仍然很困惑。
java - 如何告诉 SuperCSV 不要将空字符串映射到 null
我正在使用 ICsvListReader 和 ICsvListWriter 读取和写入 csv 文件。
我发现csv文件中的空字符串被转换为null然后输出。
我怎样才能避免这种情况发生。我试过创建一个新的 CellProcessor:
但它仍然无法正常工作。
有没有办法改变这个设置?
csv - 即使发生异常,也继续使用 csvBeanReader 读取下一行
我使用 csvBeanReader 读取 csv 文件的行。当我使用 while 循环读取原始数据时,例如:
如果发生异常,程序将退出循环而不分析剩余的原始数据。即使前一行发生异常,有没有办法继续读取下一行文件?
谢谢!!!!
java - 如何使用 Super CSV 处理列数未知的 CSV 文件
对于一个项目,我需要处理在运行前我不知道列的 CSV 文件。CSV 文件完全有效,我只需要一遍又一遍地对几个不同的文件执行一个简单的任务。我确实需要分析列的值,这就是为什么我需要使用一个库来处理 CSV 文件。为简单起见,假设我需要做一些简单的事情,例如将日期列附加到所有文件,而不管它们有多少列。我想用 Super CSV 来做到这一点,因为我也将这个库用于其他任务。
我正在努力解决的问题更多的是一个概念问题。如果我事先不知道有多少列,我不确定如何处理这些文件。我不确定应该如何定义映射任意 CSV 文件的 POJO,或者如果我不知道文件中有哪些列和多少列,我应该如何定义单元处理器。如何动态创建与列数匹配的 Cell 处理器?例如,我将如何根据 CSV 文件的标题定义 POJO?
考虑我有两个 CSV 文件的情况:products.csv 和 address.csv。假设我想为两个文件添加一个带有今天日期的日期列,而不必编写两种不同的方法(例如 addDateColumnToProduct() 和 addDateColumnToAddress())来做同样的事情。
产品.csv:
地址.csv:
基于 CSV 文件的标题信息,我如何定义一个映射产品 CSV 的 POJO?细胞处理器也有同样的问题?我怎么能定义一个非常简单的单元处理器,它基本上只为构造函数提供适量的参数,例如 product.csv
对于address.csv:
这甚至可能吗?我是否在错误的轨道上实现这一目标?
编辑 1: 我不是在寻找一种可以处理在一个文件中具有可变列的 CSV 文件的解决方案。我试图弄清楚是否可以在运行时处理任意 CSV 文件,即我是否可以仅基于运行时 CSV 文件中包含的标头信息来创建 POJO。在事先不知道 csv 文件将有多少列的情况下。
解决方案 基于@baba 的回答和评论
supercsv - SuperCSV with null delimiter
I'm creating a file that isn't really a csv file, but SuperCSV can help me to make the creation of this file easier. The structure of the file uses different lengths for each line, following a layout that don't separate the different information. So, to know which information has in one line you need look at the first 2 characters (the name of the register), count the characters and extract it by size.
I've configured SuperCSV to use empty delimiter, however, the created file is using a space where it should have nothing.
I'm doing something wrong? '\0' is the correct code for a null char?