如何在JAVA中解析文本文件中的输入?

如何在JAVA中解析文本文件中的输入?,java,parseint,numberformatexception,Java,Parseint,Numberformatexception,我试图解析input.txt文件中的字符串,但每次都会抛出NumberFormatException。我已经添加了到目前为止所有的代码。 我试过了。修剪也一样。我对Java中的文本文件非常陌生;因此,我不知道这里出了什么问题。不过,任何一点帮助都将不胜感激 import java.io.File; import java.io.FileNotFoundException; import java.io.PrintWriter; import java.util.InputMismatchExce

我试图解析input.txt文件中的字符串,但每次都会抛出NumberFormatException。我已经添加了到目前为止所有的代码。 我试过了。修剪也一样。我对Java中的文本文件非常陌生;因此,我不知道这里出了什么问题。不过,任何一点帮助都将不胜感激

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.InputMismatchException;
import java.util.NoSuchElementException;
import java.util.Scanner;

public class Lab5_Exceptions_Redo extends Exception {

    public static void main(String[] args) throws FileNotFoundException {

        String file = "inputt.txt";
        String file1 = "outputt.txt";
        String file2 = "errorr.txt";

        PrintWriter errorr = new PrintWriter(file2);

        PrintWriter inputt = new PrintWriter(file);
        inputt.println(15951);
        // int whatever = Integer.parseInt(file);
        // System.out.print(whatever);
        inputt.close();
        Scanner scan = new Scanner(file);
        String number = scan.nextLine();
        int num = Integer.parseInt(number.trim());
        System.out.printf("%d", num);

        PrintWriter outputt = new PrintWriter(file1);
        outputt.println(num);
        outputt.close();
        // inputt.close();

        scan.close();
        // System.out.printf("%d", num);

        try {

        } catch (InputMismatchException e) {
            errorr.println("There was an input mismatch error.");
        } catch (NoSuchElementException e) {
            errorr.println("There is no such element.");
        } catch (UnsupportedOperationException e) {
            errorr.println("An unsupported operation occured.");
        } catch (NumberFormatException e) {
            System.out.println(e.getMessage());
            e.printStackTrace();
        }
        errorr.close();

    }
}

在执行nextLine时,必须将空格与输入一起获取。使用trim函数去除任何空白

int num = Integer.parseInt(number.trim());
或者,您可以尝试使用nextInt而不是nextLine

以下是parseInt的JAVA文档:

将字符串参数解析为有符号十进制整数。字符串中的字符必须全部为十进制数字,但第一个字符可以是ASCII减号“-'''\u002D'表示负值,也可以是ASCII加号'+''\u002B'表示正值。返回结果的整数值,就像参数和基数10作为parseIntjava.lang.String int方法的参数一样


你犯了一个错误。在Scanner构造函数中,应该传递文件对象而不是字符串对象。由于您正在传递string input.txt,它试图解析这个字符串,因此您得到了NFE。 试试这个


扫描程序扫描=新扫描程序新文件文件

你试过调试这个问题吗?。当您尝试打印num时,您看到了什么?我尝试了.trim,但不幸的是它不起作用\::。我对用Java创建文本文件非常陌生,这就是为什么我如此困惑,为什么它不能解析输入文本文件中的整数。这不是真正的根本原因