尝试向ArrayList添加数据时Eclipse找不到txt文件问题求助
问题修复方案
- 你当前代码完全没有用到方法传入的
filename参数,硬编码了绝对路径,这种写法在不同环境下大概率失效,是极不推荐的写法 - Eclipse默认运行Java程序的工作目录是项目根目录(也就是你这里的
A2文件夹),不是bin目录,你把input.txt放在项目根目录下,直接用相对路径读取即可,不需要写全路径 - 你目前只写了读取拆分逻辑,还没补全添加到ArrayList的部分,完整可用的代码如下:
import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; public class YourTestClass { // 可根据实际需求调整ArrayList的泛型类型 private ArrayList<String> dataList = new ArrayList<>(); public void readData(String filename) { // try-with-resources语法会自动关闭流,无需手动释放,避免资源泄露 try (BufferedReader br = new BufferedReader(new FileReader(new File(filename)))) { String line; while ((line = br.readLine()) != null) { String[] words = line.split("\\s"); // 拆分后的数据添加到ArrayList for (String word : words) { // 可选逻辑:过滤连续空格产生的空字符串 if (!word.trim().isEmpty()) { dataList.add(word); } } } } catch (IOException e) { // 打印异常栈可快速定位文件找不到的具体原因 e.printStackTrace(); } } public static void main(String[] args) { YourTestClass obj = new YourTestClass(); // input.txt放在项目根目录下直接传文件名即可 obj.readData("input.txt"); // 验证读取结果 System.out.println(obj.dataList); } }
- 如果你一定要用绝对路径,可先打印路径确认拼写是否正确:
System.out.println(file.getAbsolutePath());,Windows路径中的空格不会影响正常读取 - 额外注意:
bin目录下的文件会在Eclipse执行清理构建时被自动清除,不要把资源文件放在bin目录,建议在项目根目录下新建resources文件夹存储资源文件,读取时路径写"resources/input.txt"即可
内容的提问来源于stack exchange,提问作者Wei Neuer Yew
相关产品推荐
相关产品推荐

