【发布时间】:2013-10-24 19:52:17
【问题描述】:
我正在做一个自学练习来帮助我更多地了解 Java,但我被这个问题困住了。我有以下 txt 文件:
Name Hobby
Susy eat fish
Anna gardening
Billy bowling with friends
注意:姓名和爱好用制表符隔开
阅读所有行并将其放入 arraylist(name,hobby) 的最佳方法是什么。棘手的部分是
eat fish or bowling with friends
有空格,它必须放在一个数组下,显然我无法对其进行硬编码。这是我当前的代码:
public void openFile(){
try{
FileInputStream fstream = new FileInputStream("textfile.txt");
// use DataInputStream to read binary NOT text
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
ArrayList<String> names = new ArrayList<String>();
ArrayList<String> hobbies = new ArrayList<String>();
String lineJustFetched;
while ((lineJustFetched = br.readLine()) != null) {
String[] tokens = lineJustFetched.split(" \t");
我遇到了一个错误:
java.lang.StringIndexOutOfBoundsException:字符串索引超出范围: -1
我怀疑计算索引在选项卡上不是很有用。 有什么想法吗?
【问题讨论】:
-
确保文件末尾没有新行/空行。