Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何读取csv文件中的指定行_Java_File_Csv_Opencsv - Fatal编程技术网

Java 如何读取csv文件中的指定行

Java 如何读取csv文件中的指定行,java,file,csv,opencsv,Java,File,Csv,Opencsv,我有从1980年开始的csv文件中的每日数据。但我只想读1985年的数据。因为另一个文件中的另一个数据集从1985年开始。我怎么能不读1985年以前的Java数据呢?也许这对你有帮助。它讨论InputStream的seek()函数 您可以在witch byte中计算1985年的数据,并使用seek()跳过此字节。我建议使用命令行实用程序过滤数据,而不是开发自定义解决方案 grep 1985 *.csv > data_from_1985.csv 如果您需要一个更好的表达式来过滤数据以避免虚

我有从1980年开始的csv文件中的每日数据。但我只想读1985年的数据。因为另一个文件中的另一个数据集从1985年开始。我怎么能不读1985年以前的Java数据呢?

也许这对你有帮助。它讨论InputStream的seek()函数

您可以在witch byte中计算1985年的数据,并使用seek()跳过此字节。

我建议使用命令行实用程序过滤数据,而不是开发自定义解决方案

grep 1985 *.csv > data_from_1985.csv
如果您需要一个更好的表达式来过滤数据以避免虚假数据,您可以使用它进行测试

例如,如果CSV中的行以年份开头,则可以使用

grep "^1985" *.csv > data_from_1985.csv
阅读opencsv文档:

阅读每一行(来自示例):

转换为整数

int one_value=Integer.parseInt(nextLine[i]); // iterate i 

然后,获取你的“年份”栏,并将其与1985年的Madhu进行比较——如果你使用的是openCSV,那么请查看javadocs中的。这将为您提供一个很好的示例,说明如何解析一个文件,只读取列与给定条件匹配的行。

逐行阅读,跳过1985年以前的行?到目前为止您尝试了什么?你哪里有问题?请出示您遇到问题的基本代码。您如何阅读?有小溪吗?你分了吗?每行都有固定的大小吗?您需要使用文件读取器类发布更多详细信息阅读.csv文件,是的,每一行的大小都是固定的。只有答案的质量很差,因为链接本身在将来可能变得不可用……我解释了解决方案,我很抱歉。@MadhuSudhanBaddam。您的年份肯定在一列中定义。你没有精确的csv结构,Madhu-Guillaume是正确的。是,您希望读取行,但希望基于列值进行筛选。
int one_value=Integer.parseInt(nextLine[i]); // iterate i