Java 读取文件扫描方法。然后在main中创建数组列表

Java 读取文件扫描方法。然后在main中创建数组列表,java,java.util.scanner,Java,Java.util.scanner,我是java新手,对此我有困难。我需要在一个方法中读取一个包含整数的txt文件,然后我应该在main中调用它来生成一个ArrayList。我似乎不明白 这就是我所拥有的 public class num { public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<Integer>(); list= getFile();

我是java新手,对此我有困难。我需要在一个方法中读取一个包含整数的txt文件,然后我应该在main中调用它来生成一个ArrayList。我似乎不明白

这就是我所拥有的

public class num {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<Integer>();
        list=  getFile();
        System.out.println("numbers are: " + list);
    }

    public static void getFile() {

        try {
            Scanner read = new Scanner(new File("numbers.txt"));

            do {
                int line = read.nextInt();
            }while (read.hasNext());

        } catch (FileNotFoundException fnf) {
            System.out.println("File was not found");
        }

        return line;
    }
}
公共类num{
公共静态void main(字符串[]args){
ArrayList=新建ArrayList();
list=getFile();
System.out.println(“编号为:“+列表”);
}
公共静态void getFile(){
试一试{
扫描仪读取=新扫描仪(新文件(“numbers.txt”);
做{
int line=read.nextInt();
}while(read.hasNext());
}捕获(FileNotFoundException fnf){
System.out.println(“未找到文件”);
}
回流线;
}
}

您需要将方法的返回类型更改为在本地ArrayList中列出并存储每个nextInt,并且必须在末尾返回本地列表

public class num {
    public static void main(String[] args) {
        ArrayList<Integer> list = getFile();
        list.forEach(System.out::println);
    }

    public static List<Integer> getFile() {
        List res = new ArrayList<Integer>();
        try {
            Scanner read = new Scanner(new File("numbers.txt"));
            do {
                res.add(read.nextInt());
            }while (read.hasNext());
        } catch (FileNotFoundException fnf) {
            System.out.println("File was not found");
        }
        return res;
    }
}
公共类num{
公共静态void main(字符串[]args){
ArrayList=getFile();
list.forEach(System.out::println);
}
公共静态列表getFile(){
List res=new ArrayList();
试一试{
扫描仪读取=新扫描仪(新文件(“numbers.txt”);
做{
res.add(读.nextInt());
}while(read.hasNext());
}捕获(FileNotFoundException fnf){
System.out.println(“未找到文件”);
}
返回res;
}
}

您需要将方法的返回类型更改为在本地ArrayList中列出并存储每个nextInt,并且必须在末尾返回本地列表

public class num {
    public static void main(String[] args) {
        ArrayList<Integer> list = getFile();
        list.forEach(System.out::println);
    }

    public static List<Integer> getFile() {
        List res = new ArrayList<Integer>();
        try {
            Scanner read = new Scanner(new File("numbers.txt"));
            do {
                res.add(read.nextInt());
            }while (read.hasNext());
        } catch (FileNotFoundException fnf) {
            System.out.println("File was not found");
        }
        return res;
    }
}
公共类num{
公共静态void main(字符串[]args){
ArrayList=getFile();
list.forEach(System.out::println);
}
公共静态列表getFile(){
List res=new ArrayList();
试一试{
扫描仪读取=新扫描仪(新文件(“numbers.txt”);
做{
res.add(读.nextInt());
}while(read.hasNext());
}捕获(FileNotFoundException fnf){
System.out.println(“未找到文件”);
}
返回res;
}
}
试试这个:

public class num {
public static void main(String[] args) {
    ArrayList<Integer> list = new ArrayList<Integer>();
    getFile(list);
System.out.println("numbers are: " + list);
}

public static void getFile(ArrayList<Integer> list) {


    try {
        Scanner read = new Scanner(new File("numbers.txt"));

        do {
        list.add(read.nextInt());


        }while (read.hasNext());



    } catch (FileNotFoundException fnf) {
        System.out.println("File was not found");
    }

}
公共类num{
公共静态void main(字符串[]args){
ArrayList=新建ArrayList();
获取文件(列表);
System.out.println(“编号为:“+列表”);
}
公共静态void getFile(ArrayList列表){
试一试{
扫描仪读取=新扫描仪(新文件(“numbers.txt”);
做{
list.add(读.nextInt());
}while(read.hasNext());
}捕获(FileNotFoundException fnf){
System.out.println(“未找到文件”);
}
}
基本上,您的
getFile()
方法是void类型,因此它不会返回任何内容。因此,您需要将列表作为参数传递到此方法中,然后对该列表进行变异。然后您可以在主方法中查看所做的更改。

尝试以下操作:

public class num {
public static void main(String[] args) {
    ArrayList<Integer> list = new ArrayList<Integer>();
    getFile(list);
System.out.println("numbers are: " + list);
}

public static void getFile(ArrayList<Integer> list) {


    try {
        Scanner read = new Scanner(new File("numbers.txt"));

        do {
        list.add(read.nextInt());


        }while (read.hasNext());



    } catch (FileNotFoundException fnf) {
        System.out.println("File was not found");
    }

}
公共类num{
公共静态void main(字符串[]args){
ArrayList=新建ArrayList();
获取文件(列表);
System.out.println(“编号为:“+列表”);
}
公共静态void getFile(ArrayList列表){
试一试{
扫描仪读取=新扫描仪(新文件(“numbers.txt”);
做{
list.add(读.nextInt());
}while(read.hasNext());
}捕获(FileNotFoundException fnf){
System.out.println(“未找到文件”);
}
}
基本上,您的
getFile()
方法是void类型,因此它不会返回任何内容。因此,您需要将列表作为参数传递到此方法中,然后对该列表进行变异。然后您可以在主方法中查看更改。

  • 请看一下这里的代码-
      • 请看一下这里的代码-

      您需要从方法中返回某些内容,这样它就不应该是
      void
      (想想您需要返回什么。您需要执行类似于
      ArrayList list=getFile();
      的操作)您需要从方法中返回某些内容,这样它就不应该是
      void
      (想想你需要它返回什么。你需要做一些类似于主目录中的
      ArrayList list=getFile();