使用扫描仪读取文本文件并存储到ArrayList

时间:2018-11-12 00:49:52

标签: java file arraylist

我有一个任务来创建一个计算演员的培根数的程序。这是我给定的ActorMovieTist.txt文件的内容,应该在程序中读取该文件。

Adolf Hitler Der Ewige Jude 1940 
Angelina Jolie Mr. & Mrs. Smith 2005
Anne Hathaway Valentine's Day 2010
Benedict Cumberbatch The Hobbit: An unexpected Journey 2012
Benedict Cumberbatch Black Mass 2015
Brad Pitt Mr. & Mrs. Smith 2005
Brad Pitt Sleepers 1996
Brad Pitt Ocean's Thirteen 2007
Brad Pitt Beyond All Boundaries 2009
Brad Pitt Se7en 1995
Christian Bale The Fighter 2010
Curt Bois Der Ewige Jude 1940
Curt Bois The Great Sinner 1949
Denzel Washington 2 Guns 2013
Denzel Washington The Equalizer 2014
David Struffolino The Equalizer 2014
David Struffolino Knight and Day 2010
Hugh Jackman Flushed Away 2006
Hugh Jackman X Men First Class 2011
Ian McKellen The Hobbit: An unexpected Journey 2012
Julia Roberts Valentine's Day 2010
Julia Roberts Flatliners 1990
Kate Winslet Flushed Away 2006
Kenneth Tobey The Great Sinner 1949
Kenneth Tobey Hero at Large 1980
Kevin Bacon Sleepers 1996
Kevin Bacon Beyond All Boundaries 2009
Kevin Bacon Flatliners 1990
Kevin Bacon Patriots Day 2016
Kevin Bacon Black Mass 2015
Kevin Bacon X Men First Class 2011
Kevin Bacon Hero at Large 1980
Kevin Spacey Se7en 1995
Kevin Spacey Patriots Day 2016
Kevin Spacey Austin Powers in Goldmember 2002
Mark Wahlberg 2 Guns 2013
Mark Wahlberg Patriots Day 2016
Mark Wahlberg The Fighter 2010
Matt Damon Ocean's Thirteen 2007
Tom Cruise Austin Powers in Goldmember 2002

这是我的程序,应该使用扫描程序读取此文件并将每行保存为ArrayList的元素,但事实并非如此。我在末尾打印了ArrayList的大小,但是我的程序一直说0。我在做什么错了?

import java.util.*;
import java.io.File;
import java.io.IOException;



public class KevinBacon
{
    public static void main(String args[]) throws Exception{ 
        Formatter output = new Formatter("ActorMovieList.txt");
        File file = new File("ActorMovieList.txt");
        Scanner input = new Scanner(file);
        String line = "";

    ArrayList <String> list = new ArrayList <String>(); 

    while (input.hasNextLine()) {
        list.add(input.nextLine());
    }

    System.out.println(list.size());
}

}

1 个答案:

答案 0 :(得分:2)

操作时您将覆盖输入文件

Formatter output = new Formatter("ActorMovieList.txt");

如果文件存在,则它将被截断为零大小;否则,将创建一个新文件

因为,您似乎并没有使用此output对象,只需删除此行并重新创建输入文件即可。