Java 读取文本文件,并以私有方法返回arraylist
我尝试过很多事情,我被困在这个问题中 我必须读取一个文本文件,然后以私有方法将其放入arraylist中 然后创建一个新方法来打印arraylist 这就是我迄今为止所尝试的 我得到这个错误:Java 读取文本文件,并以私有方法返回arraylist,java,file-io,arraylist,Java,File Io,Arraylist,我尝试过很多事情,我被困在这个问题中 我必须读取一个文本文件,然后以私有方法将其放入arraylist中 然后创建一个新方法来打印arraylist 这就是我迄今为止所尝试的 我得到这个错误: fileHandling.java:11: readArray(java.util.ArrayList<java.lang.String>) in fileHandling cannot be applied to () readArray(); ^ 1 error fi
fileHandling.java:11: readArray(java.util.ArrayList<java.lang.String>) in fileHandling cannot be applied to ()
readArray();
^
1 error
fileHandling.java:11:fileHandling中的readArray(java.util.ArrayList)不能应用于()
readArray();
^
1错误
我的代码:
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));
}
}
}
import java.util.Scanner;
导入java.io.*;
导入java.util.*;
公共类文件处理{
私人律师;
公共静态void main(字符串[]args)引发异常{
readArray();
}
私有ArrayList readFile()引发异常{
File File=新文件(“person.rtf”);
扫描仪=新扫描仪(文件);
while(scanner.hasNextLine()){
String str=scanner.nextLine();
人。加(str);
}
返回人;
}
public void readArray(ArrayList Person){
对于(inti=0;i
我认为错误在于当我调用我的方法时,括号内是什么?您有一些问题(我看到了)
1) 您没有实例化类的实例
2) 您没有读取该文件
3) 您没有使用列表调用readArray
4) 您没有列表
实例
5) ArrayList 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
}
private ArrayList Person=new ArrayList();
公共静态void main(字符串[]args)引发异常
{
//readArray();
fileHandling fh=新的fileHandling();
fh.readArray(fh.readFile());//您应该使用bufferedInputStream来读取文件
变量不应该大写,数组也应该称为Person而不是Person
别忘了初始化你的
ArrayList persons=新建ArrayList()
您的主方法应该首先调用read方法。如果您使用Java 7,那么它非常简单:
// returns a List<String> with all lines in the file
Files.readAllLines(thePath, StandardCharsets.UTF_8);
//返回包含文件中所有行的列表
文件.readAllLines(路径,StandardCharsets.UTF_8);
首先,由于readArray()不是静态的,您将无法从main访问readArray()。在当前上下文中,您需要在main中创建文件处理实例并调用readArray()
其次,您的readArray()方法是以ArrayList Person作为参数声明的,但是您在调用它时,主方法中没有参数
第三,它对编译没有帮助,但Java的经验法则是将类的第一个字母大写(应该是FileHandling),而不是将声明的第一个字母大写(ArrayList Person应该是ArrayList Person).你需要初始化你的ArrayList。也可以用camelCase来表示可变名称。你调用readArray
时就像调用一个静态方法一样。哦,你的readFile
方法被声明为返回一个原始类型……你能说得具体一点吗,我需要做什么?