Java项目读取txt文件失败求助:Gale-Shapley算法实现遇问题
Java文件读取找不到问题的解决方案
1. 确认工作目录与文件位置
直接使用input1.txt这类相对路径时,文件的基准位置是程序的工作目录,而非src或项目根目录。先打印当前工作目录确认:
System.out.println(System.getProperty("user.dir"));
将input1.txt放到输出的这个路径下,即可用相对路径读取。
2. 类加载器读取类路径资源
若文件放在src目录(编译后会被打包到类路径下),用类加载器读取更可靠,不受工作目录影响:
// 注意路径前的斜杠,表示从类路径根开始查找 InputStream inputStream = YourMainClass.class.getResourceAsStream("/input1.txt"); if (inputStream == null) { System.err.println("未找到input1.txt文件"); return; } BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); // 逐行读取逻辑
3. 检查IDE运行配置
- IntelliJ IDEA:打开Run → Edit Configurations,确认Working directory设置为
$PROJECT_DIR$(项目根目录) - VS Code:编辑
.vscode/launch.json,确保cwd字段指向项目根目录:
"cwd": "${workspaceFolder}"
4. 完善异常捕获逻辑
原程序可能未处理文件不存在的异常,导致仅返回exit code 0无错误提示,补充异常处理:
try { BufferedReader reader = new BufferedReader(new FileReader("input1.txt")); String line; while ((line = reader.readLine()) != null) { // 处理每行数据 } reader.close(); } catch (FileNotFoundException e) { System.err.println("找不到目标文件input1.txt"); e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
内容的提问来源于stack exchange,提问作者Shawn
相关产品推荐
相关产品推荐

