用文本文件中的一行(字符串)填充数组的每个槽

Filling each slot of an array with a line (String) from a text file

我有一个包含数千个字符串 (3272) 的文本文件列表,我想将它们分别放入数组的一个槽中,以便我可以使用它们进行整理。我已经完成了排序部分,我只需要帮助将每一行单词放入一个数组中。这是我尝试过的方法,但它只打印文本文件中的最后一项。

public static void main(String[] args) throws IOException 
{
    FileReader fileText = new FileReader("test.txt");
    BufferedReader scan = new BufferedReader (fileText);
    String line;
    String[] word = new String[3272];
    
    Comparator<String> com = new ComImpl();
    
    while((line = scan.readLine()) != null)
    {
        for(int i = 0; i < word.length; i++)
        {
            word[i] = line;
        }
    }
    
    
    Arrays.parallelSort(word, com);

    
    for(String i: word)
    {
        System.out.println(i);
    }
}

每次你读到一个line,你就把它分配给word所有个元素。这就是为什么 word 只以文件的最后一行结束。

用以下代码替换 while 循环。

    int next = 0;
    while ((line = scan.readLine()) != null) word[next++] = line;

试试这个。

Files.readAllLines(Paths.get("test.txt"))
    .parallelStream()
    .sorted(new ComImpl())
    .forEach(System.out::println);