本文详解如何正确读取逗号分隔的文本文件,将其解析为字符串列表,并避免因索引越界导致的 `indexoutofboundsexception`,提供简洁、健壮且符合现代 java 最佳实践的解决方案。
在 Java 中,将文本文件(如 myTEXT.txt)内容按分隔符(例如逗号)拆分为可索引访问的列表时,常见错误源于对 Scanner 的误用或对集合动态扩容机制理解不足。您原始代码中存在两个关键问题:
✅ 推荐使用 Java NIO.2(自 JDK 7 起),代码简洁、安全、高效:
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class TextFileToList {
public static void main(String[] args) {
try {
// 1. 读取整个文件为字符串(默认 UTF-8)
String content = Files.readString(Paths.get("myTEXT.txt"));
// 2. 按逗号及可选空格分割 → 字符串数组
String[] parts = content.split(",\\s*");
// 3. 转为 List(支持索引访问)
List textList = Arrays.asList(parts);
// ✅ 安全访问:先校验索引有效性
int targetIndex = 3;
if (targetIndex >= 0 && targetIndex < textList.size()) {
System.out.println("Element at index 3: " + textList.get(targetIndex)); // 输出: COMMING
} else {
System.err.println("Index " + targetIndex + " is out of bounds. List size: " + textList.size());
}
} catch (IOException e) {
System.err.println("Failed to read file: " + e.getMessage());
}
}
} ? 关键说明与最佳实践:

? 总结:摒弃手动循环+错误 add(index, ...) 模式,优先采用 Files.readString().split() 组合,并始终进行索引校验——简洁、安全、符合现代 Java 风格。