0

我正在尝试从作为参数传递的 .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;
}
4

2 回答 2

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[]{}参数是必要的,以告诉编译器这实际上是一个字符串数组,而不是一般的对象。

于 2013-04-17T02:45:53.480 回答
1

我想你想用strArray.append(s1);. 否则,您每次都会覆盖您的 strArray,并且只接收来自文本文件最后一行的信息。

编辑:忘记了数组大小:(对我来说太多的网络脚本..这个链接应该有帮助。 如何向数组添加新元素?

于 2013-04-17T02:40:48.550 回答