Java中创建字符串路径读取文本文件并逐行存入ArrayList求助
没问题,我来帮你搞定这个需求~
首先,你只需要把硬编码的路径换成字符串变量,再调整Scanner的读取逻辑,就能轻松把文件内容逐行存入ArrayList了。下面是具体的实现步骤和代码:
1. 定义字符串路径
先把原来固定的路径改成字符串变量,这样你可以灵活替换目标文件的路径:
// 替换成你需要的任意文件路径字符串即可 String filePath = "c:/Users/Green/documents/dictionary.txt";
2. 逐行读取并存入ArrayList
如果你的需求是直接把每行完整内容存入列表,那不需要保留原来的分隔符设置(Scanner默认会按换行符识别行),直接用hasNextLine()和nextLine()就能实现:
import java.io.File; import java.io.FileNotFoundException; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class FileReaderExample { public static void main(String[] args) { String filePath = "c:/Users/Green/documents/dictionary.txt"; List<String> contentLines = new ArrayList<>(); // 使用try-with-resources自动关闭Scanner,避免资源泄漏 try (Scanner scanner = new Scanner(new File(filePath))) { // 循环读取每一行并加入列表 while (scanner.hasNextLine()) { String line = scanner.nextLine(); contentLines.add(line); } } catch (FileNotFoundException e) { // 处理文件不存在的异常,比如打印提示或日志 System.err.println("找不到指定路径的文件:" + filePath); e.printStackTrace(); } // 可选:验证读取结果 System.out.println("共读取到" + contentLines.size() + "行内容"); for (String line : contentLines) { System.out.println(line); } } }
3. 如果需要处理每行内的"-"分隔符
如果你原来设置的useDelimiter("\\s*-\\s*")是为了拆分每行里的内容(比如每行格式是"单词 - 释义"),可以在读取每行后再做拆分处理:
while (scanner.hasNextLine()) { String line = scanner.nextLine(); // 按"-"拆分,自动忽略前后的空格 String[] parts = line.split("\\s*-\\s*"); // 比如把拆分后的内容合并成自定义格式存入列表 contentLines.add("单词:" + parts[0].trim() + ",释义:" + parts[1].trim()); }
小提示
- 一定要捕获
FileNotFoundException,避免路径错误或文件缺失时程序崩溃; - Windows系统的路径可以用双反斜杠
"c:\\Users\\Green\\documents\\dictionary.txt",也可以用你原来的正斜杠写法,Java两种都支持; try-with-resources语法会自动关闭Scanner,不用手动调用close()方法。
内容的提问来源于stack exchange,提问作者user12824107
相关产品推荐
相关产品推荐

