用文本文件中的一行(字符串)填充数组的每个槽
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);
我有一个包含数千个字符串 (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);