java - 从文本文件中逐行读取并将每行保存到数组中的不同单元格

标签 java

我试图将文本文件中的每一行拆分为数组中的单元格。我可以使用 split 函数来完成此操作,而不计算行数来创建数组吗?

我正在使用Scanner用于从扫描仪读取文件。该文件的每一行包含以下格式:number_number 我要保存number_number作为字符串放入数组的单元格中。 但是,我不知道文本文件中可以有多少行,以便设置数组大小。我不t want to use LinkedList`,请假设不会有很多行。 是否可以从文件中读取并将每一行保存到数组的单元格中? 将方法从 Scanner 更改为其他方法没有问题。

当前代码中的问题是它仅保存文件中的第一行。

public String[] readFromFileToStringArray(String s) {
        Scanner scanner = null;
        try {
            scanner = new Scanner(new File(s));
        } catch (IOException e) {
            e.printStackTrace();
        }
        String[] fileText = null;
        if (scanner != null)
            while (scanner.hasNext())
                fileText = scanner.nextLine().split("\n");
            return fileText;
    }

最佳答案

当使用 scanner.nextLine() 时,您会读取文本直到 \n 字符,因此您所做的分割是毫无意义的,因为行字符串不会有这个特点。

您可以读取所有文件,然后将其拆分:

public String[] readFromFileToStringArray(String s) {
    String text = new String(Files.readAllBytes(Paths.get(s)), 
 StandardCharsets.UTF_8);
    return text.split("\n");
}

但实际上正如其他回答所说,简单地使用 List 可能会更好

关于java - 从文本文件中逐行读取并将每行保存到数组中的不同单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56243551/

相关文章:

java - 添加和显示列表对象

java - 使用 Joda 组合两个 Date 实例以创建日期时间

java - Hadoop 多输入

java - 过滤或处理 OAuth2 中的 AuthenticationException

Java 图像未出现在 JAR 文件中

java - 如何在用户什么都不输入时继续提示用户

java - 是否推荐使用aerospike对某些字段进行过滤

java - Wicket 口可见性和类别切换

java - 关于Java内存管理

java - NetBeans 代码格式化程序可以用来格式化 javadoc 注释吗?