我正在使用此代码通过OpenCSV将波斯语单词添加到csv文件中:
String[] entries="\u0645 \u062E\u062F\u0627".split("#");
try{
CSVWriter writer=new CSVWriter(new OutputStreamWriter(new FileOutputStream("C:\\test.csv"), "UTF-8"));
writer.writeNext(entries);
writer.close();
}
catch(IOException ioe){
ioe.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
当我打开生成的csv文件时,在Excel中,它包含"ứỶờịỆ".其他程序,如notepad.exe没有此问题,但我的所有用户都使用MS Excel.
用SuperCSV替换OpenCSV并不能解决这个问题.
当我手动将波斯字符键入csv文件时,我没有任何问题.
我使用下面的Java代码创建了一个CSV文件:
String csv = rs.getString("UPLOAD_FOLDER_PATH")+".csv";
CSVWriter writer = new CSVWriter(new FileWriter(csv));
String [] filevalues = new String[filevaluesarray.size()];
filevalues=filevaluesarray.toArray(filevalues);
writer.writeNext(filevalues);
writer.close();
Run Code Online (Sandbox Code Playgroud)
我收到了CSV文件,但该文件的内容包含不需要的双引号.
例如."ABC", "123", "KDNJ"
我不会从添加这些双引号的地方得到.
我创建了一个MappingsBean类,其中指定了CSV文件的所有列.接下来,我解析XML文件并创建mappingbeans列表.然后我将该数据写入CSV文件作为报告.
我正在使用以下注释:
public class MappingsBean {
@CsvBindByName(column = "TradeID")
@CsvBindByPosition(position = 0)
private String tradeId;
@CsvBindByName(column = "GWML GUID", required = true)
@CsvBindByPosition(position = 1)
private String gwmlGUID;
@CsvBindByName(column = "MXML GUID", required = true)
@CsvBindByPosition(position = 2)
private String mxmlGUID;
@CsvBindByName(column = "GWML File")
@CsvBindByPosition(position = 3)
private String gwmlFile;
@CsvBindByName(column = "MxML File")
@CsvBindByPosition(position = 4)
private String mxmlFile;
@CsvBindByName(column = "MxML Counterparty")
@CsvBindByPosition(position = 5)
private String mxmlCounterParty;
@CsvBindByName(column = "GWML Counterparty")
@CsvBindByPosition(position = 6)
private String …
Run Code Online (Sandbox Code Playgroud) 我有一个CSV有以下的列文件:id
,fname
,telephone
,lname
,address
.
我有一个Person
带班id
,fname
和lname
数据成员.我想只将这些列映射到Person
CSV文件中的对象,并丢弃telephone
和address
列.我怎样才能做到这一点?解决方案必须随着未来添加更多列而扩展.无论列位置如何都应该工作.
在理想的解决方案中,用户只会指定要读取的列,它应该可以正常工作.
我正在尝试使用NetBeans 6.0.1中的OpenCSV解析.csv文件.我的文件包含一些Unicode字符.当我在输出中写入时,字符以其他形式出现,如(HJ1'-E /;).当我在记事本中打开此文件时,它看起来没问题.
我使用的代码:
CSVReader reader=new CSVReader(new FileReader("d:\\a.csv"),',','\'',1);
String[] line;
while((line=reader.readNext())!=null){
StringBuilder stb=new StringBuilder(400);
for(int i=0;i<line.length;i++){
stb.append(line[i]);
stb.append(";");
}
System.out.println( stb);
}
Run Code Online (Sandbox Code Playgroud) 这是我目前使用的线路
File booleanTopicFile;
// booleanTopicFile is csv file uploaded from form
CSVReader csvReader = new CSVReader(new InputStreamReader(new FileInputStream(booleanTopicFile), "UTF-8"));
Run Code Online (Sandbox Code Playgroud)
想要跳过包含标题的csv的第一行.我不想使用任何分隔符,除了默认构造函数中已有的默认一个逗号(,).在参数化构造函数中,有一个跳过否的选项.行但是如何处理构造函数的第2和第3个参数.
CSVReader csvReader = new CSVReader(new InputStreamReader(Reader reader, char c, char c1, int index);
Run Code Online (Sandbox Code Playgroud)
- 谢谢
我正在使用opencsv读取csv文件.
我无视第一行; csv文件是制表符分隔的,其中一些值用双引号括起来.
当我读取具有'\'字符的列的值时,会发生此问题,这会从值中删除.
reader = new CSVReader(new FileReader(exchFileObj),'\t','"',1);
Run Code Online (Sandbox Code Playgroud)
例如在原始文件中:
address = 12\91buenosaires
Run Code Online (Sandbox Code Playgroud)
它变成了:
address = 1291buenosiares
Run Code Online (Sandbox Code Playgroud)
在csvreader生成的字符串数组中.如何修改它以便能够读取'\'字符?
我正在使用opencsv并希望.csv
通过多个会话写入文件.但是,每次启动新的CSVWriter时,旧文件都会被删除.我是否可以将CSVWriter的行为更改为在文件末尾写入而不是替换文件?
我试图读取大CSV
和TSV
(Tab sepperated)文件大约1000000
行或更多.现在我试着读一下TSV
含有的~2500000
行opencsv
,但是它却引发了我的注意java.lang.NullPointerException
.它适用于TSV
带有~250000
线条的较小文件.所以我想知道是否有任何其他Libraries
支持阅读巨大CSV
和TSV
文件.你有什么想法?
每个对我的代码感兴趣的人(我缩短它,所以Try-Catch
显然无效):
InputStreamReader in = null;
CSVReader reader = null;
try {
in = this.replaceBackSlashes();
reader = new CSVReader(in, this.seperator, '\"', this.offset);
ret = reader.readAll();
} finally {
try {
reader.close();
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:这是我构建的方法InputStreamReader
:
private InputStreamReader replaceBackSlashes() throws Exception {
FileInputStream fis = null;
Scanner in = null;
try {
fis …
Run Code Online (Sandbox Code Playgroud) 当我使用opencsv读取csv文件时,在字符串末尾遇到'\'时它无法正常工作.这使得"字符串的一部分,而不是'\’,因为我想我想一定是添加另一个'\’有它逃脱'\’一些方法? -字符,而不是没有手动修改csv文件.我搜索但没找到任何东西.
为了澄清我的问题,它看起来像这样:
CSV文件
"A", "B", "C", "D"
"value 1", "value 2", "value 3", "value 4"
"value 5", "value 6\", "value 7", "value 8"
Run Code Online (Sandbox Code Playgroud)
我的代码看起来像这样(不是真的,但它显示了我的问题):
String inFile = "in.csv";
CSVReader reader = new CSVReader(new FileReader(inFile));
String[] line;
while ((line = reader.readNext()) != null) {
for (int i = 0; i < line.length(); i++) {
System.out.println(i + " " + line[i]);
}
}
Run Code Online (Sandbox Code Playgroud)
我希望这个解析成一个String [],每个元素包含4个元素,但最后一行只解析为两个元素,如下面的输出所示.
1 A
2 B
3 C
4 D
1 value 1
2 value 2 …
Run Code Online (Sandbox Code Playgroud)