我必须编写一个程序:
Enter the name of the input file -> carlot.txt
The Unsorted Array List of Cars
[Honda, Prelude, 1998]
[Honda, Accord, 1998]
[Honda, Ridgeline, 2006]
[Ford, Taurus, 1996]
[Mitsubishi, Eclipse, 1996]
[Mitsubishi, Galant, 2015]
[Ford, Fusion, 2010]
[Mazda, Protege 5, 2003]
[Mazda, Protege 5, 2002]
[Isuzu, Trooper, 2002]
我无法弄清楚如何执行前三个步骤。
我的代码:
package carsorter;
import java.util.*;
import java.io.*;
public class CarSorter
{
public static void main(String[] args)
{
try
{
String userFileName;
Scanner in = new Scanner(System.in);
System.out.print("Enter the name of the input file - > ");
userFileName = in.next();
System.out.println();
Scanner file = new Scanner(new File(userFileName));
ArrayList<Car> list1 = new ArrayList<>();
while (file.hasNext())
{
list1.add(new Car(file.nextInt(), file.next(), file.next()));
}
Car[] list2 = list1.toArray(new Car[list1.size()]);
System.out.println("The Unsorted Array List of Cars");
int i;
for (i=0; i < list1.size(); i++)
{
System.out.println(list1.get(i));
}
System.out.println();
}
catch (IOException e)
{
System.out.println(e);
}
}
}
在编译程序时,即使我刚刚创建了文件并将其保存到我的计算机中,它也为我提供了文件未找到异常。
我还有两个与这个项目一起使用的类,如果需要/想要它们会添加它们。因此,基本上只需要帮助找出如何从用户读取文本文件,将文本文件的内容添加到ArrayList,并以格式化方式打印出ArrayList的内容(我有一个toString()方法我的课程。)
答案 0 :(得分:0)
我想你只输入你想要阅读的文件的名称(Ej.foo.txt)。如果是这种情况,则不应将其原样传递给new File()
构造函数,因为该构造函数需要绝对路径(或相对于正在执行的JVM的路径),因此您应该输入完整绝对值文件路径跟随提示中的文件名(Ej ./home/user/foo.txt或c:\ documents \ foo.txt)。
如果不是这种情况,您首先应将提示中输入的路径打印到变量userFileName
中,以查看路径是否正确。
我建议您在使用路径创建File
实例后,检查它是否存在以及是否可以通过其exists()
和canRead()
实例方法读取它。