input.nextLine() 问题出错!
今天在学习关于I/O的知识的时候发现了一个小问题!
代码如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | package com.paulo.testio; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.util.Scanner; public class TestFile { public static void main(String[] args) throws IOException { PrintWriter output = new PrintWriter( "temp.txt" ); output.print( "Java" ); Scanner input = new Scanner( new File( "temp.txt" )); System.out.println( "ok" ); System.out.println(input.nextLine()); output.close(); input.close(); } }Exception in thread "main" java.util.NoSuchElementException: No line found at java.util.Scanner.nextLine(Unknown Source) at com.paulo.testio.TestFile.main(TestFile.java: 17 ) |
而我在stackflow上或是在其它的网站上面找到的答案大多是说要先判断异常!!等等:like this
------------------------------------------------------------------------------------------------------------------------------------------------------------
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | package com.paulo.testio; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.util.Scanner; public class TestFile { public static void main(String[] args) throws IOException { PrintWriter output = new PrintWriter( "temp.txt" ); output.print( "Java" ); output.close(); Scanner input = new Scanner( new File( "temp.txt" )); while (input.hasNextLine()) { //加一个循环用来判断 System.out.println( "ok" ); System.out.println(input.nextLine()); } input.close(); } } 对的这样写完之后是没有error了,,极好,,可是没有答案的输出!!!后来在我的研究之下发现了一点端倪!!!!把代码改成下面的即可!PrintWriter output = new PrintWriter( "temp.txt" ); output.print( "Java" ); output.close(); //在还没有关闭文件时文件里面什么都没有,,所以读不出东西 Scanner input = new Scanner( new File( "temp.txt" )); System.out.println( "ok" ); System.out.println(input.nextLine()); input.close(); |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步