我创建了一个将文本文件读入整数数组的类,我相信我已经正确完成了。然后我想在其中创建一个方法 (getInt();) 来获取数组的第一个索引,然后每次调用它时获取以下索引元件。
我有想法在每次调用它时都会增加它以获取以下索引元素,但我遇到的主要问题是我无法在try语句之外访问我的列表,因此我无法创建方法为了它。
有人可以建议一段代码或任何有关如何创建此方法的建议吗?
import java.io.*;
import java.util.*;
public class ScannerIntegerList {
public static void main(String[] args) {
try {
FileReader file = new FileReader("file.txt");
BufferedReader input = new BufferedReader(file);
List<Integer> list = new ArrayList<Integer>();
String temp = "";
while ((temp = input.readLine()) != null)
if (!temp.trim().equals("0"))
list.add(new Integer(temp));
input.close();
int i = 0;
System.out.println(list.get(i));
i++;
} catch (IOException ie) {
System.out.println(ie);
}
}
}
另外作为旁注,我正在使用eclipse,每当我尝试删除public static void main(String [] args)时,它告诉我需要它,任何人都可以解释为什么会发生这种情况以及如何解决它,特别是用这段代码?
当这个类完成时,文件名也将来自命令行,所以对此的任何建议都将非常感激。
非常感谢提前
答案 0 :(得分:0)
如果你想在try块之外使用list
,请在外面声明并初始化。
此外,在使用可关闭资源时使用try-with-resources,如下所示:
List<Integer> list = new ArrayList<>();
try (BufferedReader input = new BufferedReader(new FileReader("file.txt"))) {
String temp = "";
while ((temp = input.readLine()) != null) {
if (!temp.trim().equals("0")) {
list.add(new Integer(temp));
}
}
} catch (IOException e) {
e.printStackTrace();
}
// you can use list here, knock yourself out
如果文件名来自命令行,
那么你真的需要public static void main(String[] args)
方法。
您的程序将在args
数组中接收命令行参数。
如果文件名是第一个命令行参数,
您可以通过args[0]
使用它。