Java—将文件读入数组并随后使用数组的问题

Java—将文件读入数组并随后使用数组的问题,java,arrays,java.util.scanner,Java,Arrays,Java.util.scanner,我创建了一个类,该类将文本文件读入整数数组,我相信我的操作是正确的。然后我想在其中创建一个方法(getInt();),以获取数组的第一个索引,然后每次调用该方法时,获取以下索引元素 我的想法是每次调用它时递增它以获得以下索引元素,但我遇到的主要问题是,我无法访问try语句之外的列表,因此我无法为它创建一个方法 有人能就如何创建此方法提供一段代码或任何建议吗 import java.io.*; import java.util.*; public class ScannerIntegerList

我创建了一个类,该类将文本文件读入整数数组,我相信我的操作是正确的。然后我想在其中创建一个方法(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);
      }
   }

}
import java.io.*;
导入java.util.*;
公共类扫描集成列表{
公共静态void main(字符串[]args){
试一试{
FileReader文件=新的FileReader(“file.txt”);
BufferedReader输入=新的BufferedReader(文件);
列表=新的ArrayList();
字符串temp=“”;
而((temp=input.readLine())!=null)
如果(!temp.trim()等于(“0”))
添加(新整数(临时值));
input.close();
int i=0;
System.out.println(list.get(i));
i++;
}捕获(IOIE){
系统输出打印(ie);
}
}
}
另外,我正在使用eclipse,每当我尝试删除公共静态void main(String[]args)时,它都会告诉我需要它,有人能解释为什么会发生这种情况,以及我如何绕过它,特别是使用这段代码吗

当这个类完成时,文件名也将来自命令行,因此对此的任何建议都将不胜感激


非常感谢

如果要在try块外使用
列表
,请在try块外声明并初始化它

另外,在使用可关闭的资源时使用,如下所示:

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
List List=new ArrayList();
try(BufferedReader input=newbufferedreader(newfilereader(“file.txt”)){
字符串temp=“”;
而((temp=input.readLine())!=null){
如果(!temp.trim()等于(“0”)){
添加(新整数(临时值));
}
}
}捕获(IOE异常){
e、 printStackTrace();
}
//你们可以使用这里的列表,把你们自己弄晕
如果文件名来自命令行, 然后您确实需要
publicstaticvoidmain(String[]args)
方法。 您的程序将在
args
数组中接收命令行参数。 如果文件名是第一个命令行参数,
您可以通过
args[0]

使用它。如果要在try块之外使用
list
,请在try块之外声明并初始化它

另外,在使用可关闭的资源时使用,如下所示:

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
List List=new ArrayList();
try(BufferedReader input=newbufferedreader(newfilereader(“file.txt”)){
字符串temp=“”;
而((temp=input.readLine())!=null){
如果(!temp.trim()等于(“0”)){
添加(新整数(临时值));
}
}
}捕获(IOE异常){
e、 printStackTrace();
}
//你们可以使用这里的列表,把你们自己弄晕
如果文件名来自命令行, 然后您确实需要
publicstaticvoidmain(String[]args)
方法。 您的程序将在
args
数组中接收命令行参数。 如果文件名是第一个命令行参数,
您可以通过
args[0]

@使用它,但如果他想用
i
打印列表,他需要一个
来打印(inti=0;我知道我哪里出了问题,你知道如何使用它来创建一个方法吗?因为我无法在try之外获得列表block@ROMANIA如果他想用
i
打印列表,那就不行了,他需要一个
(inti=0;我知道我哪里出了问题,你知道如何使用它来创建一个方法吗?因为我无法从try块之外获取列表