在链接列表Java中读取CSV文件

潘卡伊

我必须在“ Functionality.java”类中实现名为“ csvToList”的静态公共方法。该方法获取字符串作为输入参数,并返回LinkedList <String []>。

签名:csvToList(字符串路径):LinkedList <String []>

该方法读取路径中的CSV文件。每条线分为两部分。这两个部分始终以逗号分隔。通过删除前面和后面的任何空格对这两个部分进行标准化,并存储在字符串数组中。这两对string []被添加到列表中。包含两对的列表将被返回。

该算法必须满足以下要求:

第一行不应读入,因为它仅包含列信息。行的规范化条目应位于字符串数组中。行的各个元素在字符串数组中不应包含任何空格。如果读取文件时抛出IOException,则应返回null。为此使用try&catch。我的代码:

import java.io.BufferedReader;
import java.util.LinkedList
public class Functionality{
public static LinkedList<String[]> csvToList(String path) {

    LinkedList<String[]> list = new LinkedList<String[]>();

    try {
        BufferedReader br = new BufferedReader(new FileReader(path));
        
        br.lines()
        .filter(line -> br.getLineNumber() > 1)
        .forEach(line -> {

        String[] fields = path.split(",");

        String mail = fields[0].trim();
        String password = fields[1].trim();
        String[] csv = { mail, password };

        list.add(csv);

        br.close();

        return list;

        } catch (IOException e) {   
        return null;
    }
    
    }
}

}

CSV文件:

Mail,Passwort
[email protected], sfkjiwefsdkfl
[email protected], 29sdf@s
[email protected], abc
[email protected], wild

有没有更好的方法来实现算法

兹威瑟洛特

我必须在“ Functionality.java”类中实现名为“ csvToList”的静态公共方法。该方法获取字符串作为输入参数,并返回LinkedList <String []>。

嗯,为什么?

LinkedList几乎总是一个错误。像糖蜜一样慢。不仅在算法上,LinkedList趋于缓慢,即使从理论上讲它应该是快速的:因为它使跟踪器对象成为现实,所以它可以执行所有不应该在所有内存访问都通过缓存页面(以及所有现代程序)的CPU上做的事情。CPU以这种方式工作)。同样,混合泛型和数组是一个严重的错误。它“起作用”,但会在整个地方引起摩擦。难以测试和编写的不可读代码。

这应该使一个List<List<String>>当然不是String[],当然不是LinkedList,在任何情况下。

new FileReader(path)

不,不要那样做。这使用“平台默认字符集编码”。你不要那样 使用新的文件API,它更易于使用,默认为UTF-8。

该方法读取路径中的CSV文件。

其实,没关系。读取CSV比您想象的要复杂得多。当然,这比split您能做的要复杂得多使用诸如SuperCSV之类的CSV阅读器库CSV可以包含引号,多行字符串等。

} catch (IOException e) {   
   return null;
}

不要这样 忽略错误不是您应该轻易做的事情。如果您不知道如何处理错误,throw new RuntimeException("Unhandled", e);那就在catch块中是想要的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

c中的链接列表(从文件读取)

如何从文件中读取信息并将信息存储在链接列表(Java)中?

Java:将CSV读取到链接列表(略有改动)

从txt文件读取链接列表

内存泄漏读取文件到C中的链接列表

Selenium中的.get无法读取CSV文件链接

如何在Java中将.csv文件读取到数组列表中?

如何在链接列表中存储CSV文件的内容?

从文件列表中读取CSV并“更改”列(日期)

从多个文件夹中以列表形式读取* .csv

如何从 Python 中的 csv 文件读取字典列表?

如何通过读取 csv 文件在 Python 中附加列表

使用A从安全链接读取CSV文件

Python> Selenium + CSV:Webdriver读取,访问.csv文件中的所有链接

FileHelpers读取复杂的csv文件,该文件在类对象中包括内部csv列表

将二进制文件中的数据读取到C中的链接列表中(访问冲突读取位置)

从Java中的文件读取和使用嵌套列表

从csv文件Java读取数据

从 Java 中的 CSV 文件读取和格式化日期

在Java中读取CSV文件时为空行

使用Java代码读取hadoop中的csv文件格式

如何读取多个CSV文件以Java中的数据排序?

CSV Java文件读取和保存(在不同的ArrayList中)

忽略在Java中读取CSV文件的空值

在java中读取CSV文件时出现NumberFormatException

读取CSV文件并在java中拆分值

如何使用java读取CSV文件中的特定列?

如何创建(C)函数以使用“读取”将文件中的数据读取到链接列表中?

从路径列表中读取文件