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

时间:2019-05-21 17:27:39

标签: java

我正在尝试将文本文件中的每一行拆分为一个数组中的单元格。我可以使用split函数而不计算行数来创建数组吗?

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

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

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;
    }

3 个答案:

答案 0 :(得分:2)

使用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

答案 1 :(得分:0)

您是否应该更改将字符串添加到数组的方式?

fileText.add(scanner.nextLine());

OR:

List<String> list = new ArrayList<String>(Arrays.asList(fileText));
list.addAll(Arrays.asList(scanner.nextLine().splite("\n")));
String[] fileText = list.toArray();

答案 2 :(得分:0)

from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('<kviz/', views.kviz, name='kviz'), # The kviz view just renders the page.
]

java文件是最简单的方法。