Java尝试捕获方法

Java尝试捕获方法,java,eclipse,macos,Java,Eclipse,Macos,我是一名java初学者,当我遵循2.12版绝对java的显示时。控制台显示“main”中有线程。我将文本文件放在程序的根目录中。我还仔细检查了代码。我不知道如何修理它。我正在使用eclipse在macOS中编写代码,java是最新版本。谢谢你的帮助 代码如下所示: import java.util.Scanner; import java.io.FileInputStream; import java.io.FileNotFoundException; public class TextFil

我是一名java初学者,当我遵循2.12版绝对java的显示时。控制台显示“main”中有线程。我将文本文件放在程序的根目录中。我还仔细检查了代码。我不知道如何修理它。我正在使用eclipse在macOS中编写代码,java是最新版本。谢谢你的帮助 代码如下所示:

import java.util.Scanner;
import java.io.FileInputStream;
import java.io.FileNotFoundException;

public class TextFileDemo
{
    public static void main(String[] args)
    {
        Scanner fileIn = null;
        try
        {
            fileIn = new Scanner(new FileInputStream("player.rtf"));
        }
        catch (FileNotFoundException e)
        {
            System.out.println("file not found.");
            System.exit(0);
        }

        int highscore;
        String name;

        System.out.println("Text left to read? " +    fileIn.hasNextLine());
        highscore = fileIn.nextInt();
        fileIn.nextLine();
        name = fileIn.nextLine();

        System.out.println("Name: " + name);
        System.out.println("High score: " + highscore);
        System.out.println("Text left to read? " + fileIn.hasNextLine());
        fileIn.close();
    }
这是我的控制台显示:


错误表明,在读取数据文件时,使用
nextInt()
尝试读取的第一个内容实际上不是整数

检查文件中的内容。特别是在编辑器中,它将文件视为未格式化的数据,如
notepad

文件名表明您正在读取的文件是
.rtf
文件或“富文本格式”。扫描仪无法读取该信息


将文件另存为纯文本文件

我不确定我是否正确,但会抛出此错误,因为您可能试图将int与字符串匹配。可能,由于文件的内容,您可能也想将其上传到问题中。如果您只是想打印到控制台,我建议您将它们全部转换为字符串

这可能也有帮助

将FileNotFoundException替换为InputMismatchException。谢谢,我以前尝试使用.txt文件,但问题是相同的,将
player.rtf
重命名为
player.txt
不会更改文件的编码;确保将文件保存为纯文本。如果确定该文件是纯文本文件,作为临时调试措施,请替换
highscore=fileIn.nextInt();fileIn.nextLine()具有
高分=1234;System.out.println(“Line=“+fileIn.nextLine())
并向我们报告输出内容,以获得进一步的调试帮助。我检查了文件信息,显示它是纯文本。我按照您的指示更改了代码,没有出现错误。但结果很奇怪,就像这样:留下文本阅读?true Line={\rtf1\ansi\ansicpg1252\cooartf1404\cocoasubrtf460 Name:{\fonttbl\f0\fswiss\fcharset0 Helvetica;}高分:1234个文本未读?trueYup!这是一个
RTF
编码的文档;它的开头是:
{\rtf1
“。您需要使用支持RTF的程序打开它,并将其另存为常规纯文本文件。仅读取RTF文档的文本远远超出了
扫描仪
类的能力。在MacOS上,
文本编辑
将对此起作用。打开文档,然后“格式化->生成纯文本”,然后保存为新名称。