使用Scanner读取文本文件并存储到ArrayList



我有一项任务要创建一个计算演员培根数的程序。这是我给定的ActorMovieList.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

这是我的程序,它应该使用Scanner来读取这个文件,并将每一行保存为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());
}

}

进行时,您正在覆盖输入文件

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

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

由于您似乎没有使用此output对象,只需删除此行并重新创建您的输入文件。

最新更新