Java代码无报错运行提示进程结束但无输出如何解决
Java代码无输出问题修复方案
根因定位
- 空catch块吞噬异常:你当前代码的
catch(IOException ex) {}逻辑为空,所有IO相关异常(比如文件权限不足、路径实际不匹配、文件被占用等)都会被直接吞掉,不会输出任何报错信息,也不会执行try块里的打印逻辑,最终只会显示进程结束。 - 次要冗余问题:
filename本身是字符串类型,filename.toString()属于无效冗余调用,不过该问题不影响程序运行。
修复代码
使用try-with-resources语法自动管理流资源,同时在catch块中添加异常打印逻辑,方便定位具体问题:
import java.nio.file.*; import java.io.*; public class GuessingGame { public GuessingGame() { // 用正斜杠写Windows路径可以避免转义错误,兼容性更好 String filename = "C:/Users/angela/Documents/words.txt"; Path path = Paths.get(filename); try (InputStream input = Files.newInputStream(path); BufferedReader read = new BufferedReader(new InputStreamReader(input))) { String word = null; while((word = read.readLine()) != null) { System.out.println(word); } } catch(IOException ex) { // 打印异常栈,直接看到具体错误原因 ex.printStackTrace(); } } public static void main (String[] args) { new GuessingGame(); } }
后续排查建议
如果修改后还是没有输出,按以下步骤排查:
- 确认
words.txt文件本身不是空文件 - 在
Path path = Paths.get(filename);后添加System.out.println(path.toAbsolutePath());,打印实际解析的路径和你本地文件路径核对是否完全一致 - 检查运行Java程序的账号是否有读取该路径下文件的权限
内容的提问来源于stack exchange,提问作者Bored AsFucc
相关产品推荐
相关产品推荐

