我正在尝试使用Java在桌面上找到文本文件中的最高编号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我正在尝试使用Java在桌面上找到文本文件中的最高编号相关的知识,希望对你有一定的参考价值。

我正在尝试编写一些代码来查看桌面上的文本文件,并将该文件中的最大数字吐出到桌面上的新文件中。

我不确定错误是文件扩展名还是代码的其他部分:

import java.io.*;
import java.util.*;

class Lab1 {
    public static void main(String[] args) {
        try {
            Scanner file = new Scanner(new File("/Users/tylerprosper/Desktop/numberlist.rtf"));
            int largest = file.nextInt();

            while(file.hasNextInt()) {
                int number = file.nextInt();

                if(number > largest) {
                    largest = number;
                }

                System.out.println(number);
            }

            file.close();

            System.out.println("The biggest number in the file is: " + largest);
        } catch(IOException e) {
            System.out.println(e.getMessage());
        }
    }
}

我收到的错误是:

Exception in thread "main" java.util.InputMismatchException
    at java.base/java.util.Scanner.throwFor(Scanner.java:860)
    at java.base/java.util.Scanner.next(Scanner.java:1497)
    at java.base/java.util.Scanner.nextInt(Scanner.java:2161)
    at java.base/java.util.Scanner.nextInt(Scanner.java:2115)
    at Lab1.main(Lab1.java:9)

文本文件的内容是1-9个,各自连续,如下:

1 2 3 4 5 6 7 8 9

这是一个screencap的链接:https://imgur.com/gP3AgjE

答案

如果您坚持以.rtf格式存储数据,可以尝试以下代码。它使用RTFEditorKit将.rtf文件作为文档对象读入,然后遍历文档以获取数据并相应地进行比较。无论如何我不建议您使用.rtf,而是使用纯文本文件,这样您就可以跳过这个单调乏味的步骤。如果您使用的是纯文本文件,则只需使用您编写的代码即可实现目标。

File inputFile = new File("/Users/tylerprosper/Desktop/numberlist.rtf");
RTFEditorKit rtfParser = new RTFEditorKit();
Document document = rtfParser.createDefaultDocument();
rtfParser.read(new FileInputStream(inputFile), document, 0);

int size = document.getLength();
 int largest = 0;
int number ;

// i+=2 is to skip the next line character
for(int i = 0 ; i < size ; i+=2)
{
    String text = document.getText(i,1);
    number = Integer.parseInt(text);

     if(number > largest) {
         largest = number;
     }

      System.out.println(number);
}

System.out.println("The biggest number in the file is: " + largest);

以上是关于我正在尝试使用Java在桌面上找到文本文件中的最高编号的主要内容,如果未能解决你的问题,请参考以下文章

可可中的copyItemAtURL

使用特定文件夹中的批处理文件创建 txt 文件

使用openCV将桌面录制到文件

尝试在单独的文本文件中查找单词

在JavaFX中的openstreetmap上显示分层集群

在命令提示符下使用 echo 创建文本文件