Java 如何在csv中显示类似00019的字符串
我在csv中输入了如下结果:Java 如何在csv中显示类似00019的字符串,java,csv,Java,Csv,我在csv中输入了如下结果: ID COUNTRY 0009 FR 0006 FR 问题是,当我打开文件.CSV时,我在ID下读取值9和6,而不是0009和0006。这是怎么可能的?我如何避免这个问题?有人能帮我吗?您可以将值作为字符串转义 ID COUNTRY "0009" FR "0006" FR 我相信您的问题与Java无关,我假设您使用的是选
ID COUNTRY
0009 FR
0006 FR
问题是,当我打开文件.CSV时,我在ID下读取值9和6,而不是0009和0006。这是怎么可能的?我如何避免这个问题?有人能帮我吗?您可以将值作为字符串转义
ID COUNTRY
"0009" FR
"0006" FR
我相信您的问题与Java无关,我假设您使用的是选项卡处理器Excel、Calc等等。。。。打开文件时,必须将列类型显式设置为text,否则它会猜测它是一个数字并清除前导零 考虑到问题是用Java标记的 如果您有一个如上所述的CSV,它是以选项卡分隔的:
ID COUNTRY
0009 FR
0006 FR
假设它位于:src/com/stackoverflow/myfile.csv
您可以阅读以下内容:
包com.stackoverflow;
导入java.io.BufferedReader;
导入java.io.FileNotFoundException;
导入java.io.FileReader;
导入java.io.IOException;
公共类CsvReader{
公共静态最终字符串CSVFILE=src/com/stackoverflow/myfile.csv;
公共静态无效字符串[]args{
BufferedReader br=null;
字符串行=;
字符串cvsSplitBy=\\t+;//使用制表符作为分隔符
试试{
br=新的BufferedReaderNewFileReaderCSVfile;
而line=br.readLine!=null{
String[]info=line.splitcvsSplitBy;
StringBuilder详细信息=新StringBuilder;
details.appendID=;
details.appendinfo[0];
details.append,Country=;
详情。附录信息[1];
System.out.printlndetails.toString;
}
}捕获文件NotFounde异常{
e、 打印跟踪;
}捕捉异常{
e、 打印跟踪;
}最后{
如果br!=null{
试一试{
br.关闭;
}捕捉异常{
e、 打印跟踪;
}
}
}
}
}
其结果是:
ID = ID, Country = COUNTRY
ID = 0009, Country = FR
ID = 0006, Country = FR
注:为0009和0006
仅更新了Java 8读取CSV文件的方法:
包com.stackoverflow;
导入java.io.IOException;
导入java.nio.file.Files;
导入java.nio.file.path;
导入java.util.stream.stream;
公共类CsvReader{
公共静态最终字符串CSVFILE=src/com/stackoverflow/myfile.csv;
公共静态无效字符串[]args{
字符串cvsSplitBy=\\t+;//使用制表符作为分隔符
尝试Stream=Files.linesPaths.getCSVFILE{
stream.forEachline->{
String[]info=line.splitcvsSplitBy;
StringBuilder详细信息=新StringBuilder;
details.appendID=;
details.appendinfo[0];
details.append,Country=;
详情。附录信息[1];
System.out.printlndetails.toString;
};
}捕捉异常{
e、 打印跟踪;
}
}
}
你把它们读成字符串了吗?是的,我从字符串中读到了ID,至少给我们看看你的代码。也许您正在解析为int而不是string。我的意思是,在我放入file.csv的字符串中,大约有个前导零。我希望零不会被删除,因为当我打开我的file.csv文件时,零会被删除。请显示代码!我们如何回答而不看您是如何读取的?我使用libre office,但当我打开file.csv时,我读取的数字也是错误的,如果之前将值放入文件读取id中,结果是正确的,但当我打开file.csv时是错误的wrong@Poppy:用记事本、记事本++打开文件,您将看到文件中真正的内容。如果Java代码写错了,没有发布Java代码,没有人会给你合理的答案