我尝试了很多东西,而且我对这个问题非常困惑。
我必须从文本文件中读取,并将其放入私有方法的arraylist中。
然后制作一个新的方法来打印arraylist。
这是我到目前为止所尝试过的。
我收到此错误:
fileHandling.java:11: readArray(java.util.ArrayList<java.lang.String>) in fileHandling cannot be applied to ()
readArray();
^
1 error
我的代码:
import java.util.Scanner;
import java.io.*;
import java.util.*;
public class fileHandling {
private ArrayList<String> Person;
public static void main(String[] args)throws Exception {
readArray();
}
private ArrayList readFile() throws Exception {
File file = new File("person.rtf");
Scanner scanner = new Scanner(file);
while(scanner.hasNextLine()) {
String str = scanner.nextLine();
Person.add(str);
}
return Person;
}
public void readArray(ArrayList<String> Person) {
for(int i =0; i < Person.size(); i++) {
System.out.println(Person.get(i));
}
}
}
我认为错误是当我调用我的方法时,括号内的内容是什么?
答案 0 :(得分:0)
你有一些问题(我看到了)。
1)您没有实例化您班级的实例。
2)你没有阅读文件。
3)您没有使用readArray
致电List
。
4)你没有List
个实例。
5)ArrayList<String> readFile()
我想你想要这样的东西,
private ArrayList<String> Person = new ArrayList<String>();
public static void main(String[] args) throws Exception
{
// readArray();
fileHandling fh = new fileHandling();
fh.readArray(fh.readFile()); // <-- something like this
}
答案 1 :(得分:0)
您应该使用bufferedInputStream来读取您的文件......
变量不应该大写,你的数组也应该被称为person而不是Person。
别忘了初始化你的 ArrayList persons = new ArrayList();
您的主要方法应首先调用read方法。
答案 2 :(得分:0)
如果您使用Java 7,它就像:
一样简单// returns a List<String> with all lines in the file
Files.readAllLines(thePath, StandardCharsets.UTF_8);
答案 3 :(得分:0)
首先,您将无法从main访问readArray(),因为readArray()不是静态的。在当前的上下文中,您需要在main中创建一个fileHandling实例,并在其上调用readArray()。
其次,您的readArray()方法是使用ArrayList Person作为参数声明的,但是您在主方法中没有参数的情况下调用它。
第三,它对编译没有帮助,但Java中的经验法则是大写一个类的第一个字母(应该是FileHandling)并且不要大写声明的第一个字母(ArrayList Person应该是ArrayList人)。