Java 如何在csv中显示类似00019的字符串

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无关,我假设您使用的是选

我在csv中输入了如下结果:

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代码,没有人会给你合理的答案