Buffered Readers的新手,我正在尝试将文件放入数组列表......这就是我到目前为止所做的。
FileReader in = new FileReader(latestFile);
BufferedReader br = new BufferedReader(in);
int arrayCount = 0;
String[] array = null;
String nextLine = null;
if ((nextLine = br.readLine()) != null ) {
arrayCount = array.length;
array[arrayCount - 1] = nextLine.split("\\s+");
}
有谁能解释我做错了什么?
答案 0 :(得分:1)
只需将String[] array = null;
更改为List<String> arrayList = new ArrayList<>();
,将array[arrayCount - 1] = nextLine.split("\\s+");
更改为arrayList.add(nextLine.split("\\s+"));
。
即。使用ArrayList
而不是未定义的数组。
答案 1 :(得分:0)
BufferedReader file = new BufferedReader(new FileReader("yourfile.txt"));
ArrayList<String> array = new ArrayList<String>();
String line;
while ((line = file.readLine()) != null)
{
array.add(line.split("\\s+"));
}
file.close();
基本上,您逐行读取文件并将每行添加到字符串的ArrayList中。
如果您想访问这些元素,可以这样做:
for (int i=0; i < array.size(); i++)
System.out.println(array.get(i));
答案 2 :(得分:0)
问题是你没有初始化Array
对象,要做到这一点,你必须知道你要从文件中读取的元素数量。
所以你可以将数组初始化为
String[] array = new String[The Number];
由于您不太可能知道数组中的元素数量,因此您必须使用ArrayList
。
FileReader in = new FileReader(latestFile);
BufferedReader br = new BufferedReader(in);
// This list will dynamically grow as elements are inserted.
ArrayList<String> arraylist = new ArrayList<String>();
String nextLine = null;
if ((nextLine = br.readLine()) != null ) {
arraylist.addAll(Arrays.asList(line.split("\\s+")));
}
// if you want an array, following code will return all the
//elements as String array
String[] array = arraylist.toArray(new String[0]);
使用ArrayList
会很容易。
希望这会有所帮助。