scanner 使用错误:Exception in thread "main" java.util.NoSuchElementExceptionation

在进行基本的文件输入输出时,我的代码为:

import java.util.*;
import java.nio.file.*;
import java.io.*;
import java.util.Scanner;
public class AddNumber{
 public static void main(String[] args){
  int num1=0,num2=0;
  try{
      Scanner in=new Scanner(Paths.get("e:\\javaCode\\data.txt"));
      num1=in.nextInt();
      num2=in.nextInt();
      in.close();
      System.out.println(num1+"+"+num2+"="+(num1+num2));
      PrintWriter o=new PrintWriter("result.txt");
      o.println(num1+"+"+num2+"="+(num1+num2));
      o.close();
      }
      catch(Exception e){
      e.printStackTrace();
      }
 }
}

编译时。可能会遇到这样的问题:

开始查了一下,以为是没有包含头文件啥的,后来发现不是,主要还是对scanner类不理解。

scanner 的几种常见用法

scanner 方法提供了一种方便从控制台读取数据的方法。使用格式为 Scanner in = new Scanner(System.in); 之后可以对于in做一系列操作。如:

  • 读取下一字符串 next()
  • 读取一整行数据 nextLine()
  • 返回一个布尔值,用于判断下一行是否数据 hasNext()
  • 以特定格式读取数据(正则) useDelimiter(“format”)
  • 读取特定数据:nextxx() nextInt(), nextFloat()等

从程序来看,num1=in.nextInt();用于读取一个特定的数据,该特定的数据来源于用Scanner定义的一个文件夹的内容,而我所犯的错误是data.txt文件夹里根本就没有内容,所以读不出内容来,从而出现图示错误。

将data.txt文件中加上内容:

运行后的结果就好了:

以后还是要细心,然后要加强对知识的理解。


猜你喜欢

转载自blog.csdn.net/ai_yue/article/details/80893764