gpt4 book ai didi

java - Java读取文件的好方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:09:47 25 4
gpt4 key购买 nike

如果有人能帮助我,我将不胜感激。我正在尝试进行外部排序,但我被困在合并部分。我知道我应该如何合并它只是不确定要使用什么功能。

现在我正在尝试读取多个小文本文件的第一个单词,并将它们存储在文件数量大小的字符串数组中。所以基本上我会有一个包含每个文件第一个单词的字符串数组。然后我确定哪个是按字母顺序排列的最小单词并将其写入一个新文件,之后我将读取该最小单词文件的下一个单词。这个词将被放置在字符串数组中输出的最小词的位置,并将它与另一个文件中第一个词的其余部分进行比较。这将不断重复,直到所有单词都被排序。

我遇到的主要问题是我使用的是扫描仪,在第一次运行比较后,它无法将文件中的最小单词与下一个单词切换,因为扫描仪不会保留它所拥有的内容读。我知道 readline 可以,但是因为我的文件都是由一个空格分隔的单词,所以我不能使用 readline。有人可以指导我使用足够的阅读功能,但不能帮助我解决这个问题。

  for (int i = 0; i<B;i++)
{
try
{
BufferedReader ins = new BufferedReader(new FileReader(Run-"+ i + ".txt"));
Scanner scanner2 = new Scanner(ins);
temp3[i] = scanner2.next();

System.out.println(temp3[i]);
}
catch(IOException e)
{
}
}
for(int i=0;i<N;i++)
{
String smallest = temp3[0];
int smallestfile = 0;
for(j=0;j<B;j++)
{
int comparisonResult = smallest.compareTo(temp3[j]);
if(comparisonResult>0)
{
smallest = temp3[j];
smallestfile = j;
}
}
BufferedReader ins = new BufferedReader(new FileReader("C:/Run-"+ smallestfile + ".txt"));
Scanner scanner2 = new Scanner(ins);
if(scanner2.hasNext())
{
temp3[smallestfile]=scanner2.next();
}
}
}
catch(Exception e)
{
}

最佳答案

如果文件足够小,将整个文件读入内存,然后使用String.split()分隔数组中的字符串并发挥你的魔力。

如果文件较大,则继续打开并读取每个字节,直到找到空格,然后对所有文件执行此操作,比较字符串,发挥你的魔力并重复直到所有文件到达末尾。

编辑:

  • 如何使用BufferedReader读取文件
  • 如何使用 String.split() 拆分行

String line = readeOneLineFromTheCurrentFile();String[] words = line.split("");

关于java - Java读取文件的好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15376762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com