【发布时间】:2014-05-11 02:47:18
【问题描述】:
我试图将我的数组大小基于从文本文件中读取的行数,该文本文件的行数未知。我尝试读取文件两次,第一次使用 while 循环并递增 int,然后将其用于数组大小,但这似乎不起作用。然后我尝试将行的值放入列表中并获取列表大小,但这也不起作用。任何帮助都会很棒。
第一次使用 int 来递增。我什么也没得到。
import java.io.*;
import java.util.*;
public class Scan {
public static void main(String args[]) throws IOException {
String routeName = " ";
String stationName = " ";
Scanner timetable = new Scanner(new File("fileName.txt"));
int i = 0;
while(timetable.hasNext()){
i++;
}
int count = 0;
String [] s = new String[i];
while (timetable.hasNext()) {
String line = timetable.nextLine();
s[count++] = line;
}
routeName = s[0];
stationName = s[1];
System.out.println(routeName.toString());
System.out.println(stationName.toString());
}
}
第二次使用列表。我得到一个 NullPointerException。
import java.io.*;
import java.util.*;
public class Scan {
public static void main(String args[]) throws IOException {
String routeName = " ";
String stationName = " ";
Scanner timetable = new Scanner(new File("fileName.txt"));
List<String> list = new ArrayList<String>();
while(timetable.hasNext()){
list.add(timetable.next);
}
int i = list.size();
int count = 0;
String [] s = new String[i];
while (timetable.hasNext()) {
String line = timetable.nextLine();
s[count++] = line;
}
routeName = s[0];
stationName = s[1];
System.out.println(routeName.toString());
System.out.println(stationName.toString());
}
}
【问题讨论】:
-
需要使用数组吗?为什么不使用
List?