我正在尝试从作为参数传递的.txt文件创建一个字符串数组,但我遇到了问题。有帮助吗?这是我的代码:
public String[] getStrings( String filename ){
File sourceFile = new File(filename);
Scanner input = new Scanner(sourceFile);
String[] strArray;
while(input.hasNext()){
String s1 = input.nextLine();
strArray = s1.toArray();
}
return strArray;
}
答案 0 :(得分:2)
你在这个方法中遇到了一些问题需要解决。首先,无论何时处理文件i / o,几乎总是存在IOException
的风险,所以你想要在某个地方捕获它。例如,您可以将整个代码包装在:
public String[] getStrings( String filename ){
try {
//Method content
} catch (IOException e) {
e.printStackTrace();
}
}
其次,数组是固定大小,这意味着您需要预先知道数组的大小。而且由于您不知道(文件可能包含任意数量的行),您需要使用可变大小的容器,例如ArrayList
。
您可以按如下方式声明ArrayList
:
ArrayList<String> strArray = new ArrayList<String>();
这将创建一个空的ArrayList
。现在,使用strArray = s1.toArray();
代替strArray.add(s1)
。
然后,要转换回数组(为您的方法返回一个数组),请使用strArray.toArray(new String[]{})
。 new String[]{}
参数必须告诉编译器这实际上是一个字符串数组,而不是一般的对象之一。
答案 1 :(得分:1)
我认为你想使用strArray.append(s1);
。否则,您每次都会覆盖strArray,并且只接收来自文本文件最后一行的信息。
编辑:忘了数组大小:(对我来说网页脚本太多了......这个链接应该有所帮助。 How to add new elements to an array?