好的,所以我正在处理这个需要加载文件的项目。我的老师为我们编写了这段代码,用来加载文件。我现在正试图弄清楚如何获得这个类并将其用于另一个代码块中。我浏览过互联网,但还是很困惑。一个直接的例子就太好了
我的另一个问题是如何管理这个班。当我的老师运行类和其他类似的文件时,它们运行起来没有问题,但当我尝试运行它们时,尽管使用了相同的代码,它不允许我运行它。
import java.io.FileNotFoundException;
import java.io.File;
import java.util.Scanner;
import java.util.ArrayList;
public class AltFileLoader {
private String path;
public AltFileLoader(String file_path) {
path = file_path;
}
public ArrayList<String> loadFile() throws FileNotFoundException {
Scanner inFile = new Scanner(new File(path));
ArrayList<String> allTheLines = new ArrayList<String>();
while (inFile.hasNext()) {
allTheLines.add(inFile.next());
}
inFile.close();
return allTheLines;
}
}
作为我的刽子手代码的开始,我有
import java.io.File;
import java.util.Scanner;
import java.util.ArrayList;
import java.io.FileNotFoundException;
import java.util.Random;
class Hangman extends AltFileLoader {
public String allTheLines;
String getallTheLines() {
return(allTheLines);
}
public static void main(String[] args){
System.out.println("If this prints then it works!");
}
}
所以基本上,我一直在努力实现这个类文件。然后我将从那里开始工作。无法插入文本文档真的让我在这件事上停下了脚步。
当我尝试运行该类时,我会得到错误
错误:在类AltFileLoader中找不到主方法,请将主方法定义为:public static void main(String[]args)
类AltFileLoader中的构造函数AlteFileLoader不能应用于给定的类型;类Hangman扩展AltFileLoader{^
上面是我在试图将类实现到hangman代码中时遇到的错误。
要使用这个类,您需要创建它的一个实例,传入一个String,该String表示感兴趣文件的文件路径。然后,当您需要字符串的ArrayList时,从AltFileLoader实例中调用loadFile()方法。请注意,您必须以某种方式处理FileNotFoundException,方法是捕获它(如下所示),或者让该代码所在的方法将该方法声明为抛出该异常(就像您的讲师在其方法代码中所做的那样):
AltFileLoader altFileLoader = new AltFileLoader(filePath);
ArrayList<String> stringList = null;
try {
stringList = altFileLoader.loadFile();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
编辑
关于这个问题:
还想知道为什么它不会为我运行。
不幸的是,我们不知道。你必须向我们展示你是如何使用它的,以及你可能遇到的任何错误。
编辑2
我看到了另一个大问题。您的Hangman类正在扩展AltFileLoader,它不应该这样做。相反,您应该让代码使用AltFileLoader的实例,而不是扩展。这是对继承的不恰当使用,因为Hangman本质上没有通过AltFileLoader的is-a测试——它不是一种专门类型的AltFileLoader。