Java Can';t使用fileio函数打开对象Arraylist
我试图用一个函数打开一个带有fileIO的arraylist对象,但现在我被卡住了。我认为我的setter函数有问题。(文件test.txt已存在) 我使用以下类来实现fileio函数 PaslijstJava Can';t使用fileio函数打开对象Arraylist,java,file-io,arraylist,Java,File Io,Arraylist,我试图用一个函数打开一个带有fileIO的arraylist对象,但现在我被卡住了。我认为我的setter函数有问题。(文件test.txt已存在) 我使用以下类来实现fileio函数 Paslijst public class Paslijst implements Serializable { private ArrayList<Pas> paslijst; public ArrayList<Pas> setPaslijst(ArrayList<
public class Paslijst implements Serializable {
private ArrayList<Pas> paslijst;
public ArrayList<Pas> setPaslijst(ArrayList<Pas> paslijst){
this.paslijst = paslijst;
return paslijst;
}
Main
public static void main(String[] args) {
FileIOPas fileiopas = new FileIOPas();
Paslijst paslijst = new Paslijst();
try {
paslijst.setPaslijst(fileiopas.openen("test.txt"));
}
catch (IOException e) {
System.out.println(" IO openen mislukt, want: " + e.toString());
}
catch (ClassNotFoundException e) {
System.out.println("class not found: " + e.toString());
}
}
您在paslijst.setPaslijst()中传递了错误的参数。我已经编辑了您的类,这可能会有所帮助
public class Main {
public static void main(String[] args) {
FileIOPas fileiopas = new FileIOPas();
Paslijst paslijst = new Paslijst();
paslijst.setPaslijst(fileiopas.openen("test.txt"));
}
}
public class FileIOPas {
public ArrayList<Pas> openen(String filenaam) {
try (FileInputStream fileInputStream = new FileInputStream(filenaam);
ObjectInputStream objectInputStream = new ObjectInputStream(
fileInputStream);) {
return (ArrayList<Pas>) objectInputStream.readObject();
} catch (Exception exception) {
exception.printStackTrace();
}
return null;
}
}
public class Paslijst implements Serializable {
private ArrayList<Pas> paslijst;
public ArrayList<Pas> getPaslijst() {
return paslijst;
}
public void setPaslijst(ArrayList<Pas> paslijst) {
this.paslijst = paslijst;
}
}
公共类主{
公共静态void main(字符串[]args){
FileIOPas FileIOPas=新的FileIOPas();
Paslijst Paslijst=新的Paslijst();
setPaslijst(fileiopas.openen(“test.txt”);
}
}
公共类文件IOPA{
公共ArrayList openen(字符串filenaam){
try(FileInputStream FileInputStream=newfileinputstream(filenaam);
ObjectInputStream ObjectInputStream=新ObjectInputStream(
fileInputStream);){
返回(ArrayList)objectInputStream.readObject();
}捕获(异常){
异常。printStackTrace();
}
返回null;
}
}
公共类Paslijst实现可序列化{
私人ArrayList paslijst;
公共数组列表getPaslijst(){
返回paslijst;
}
公共无效setPaslijst(ArrayList paslijst){
this.paslijst=paslijst;
}
}
(1)您的Pas
类是否可序列化?(2) 运行代码时发生了什么?您是否遇到任何错误?问题是什么?您遇到了哪些异常?@Aleks G Exception in thread“main”java.lang.RuntimeException:不可编译的源代码-错误的符号类型:beefreeznew.Paslijst.setPaslijst at beefreeznew.beefreeznew.main是Pas是一个可序列化的类。您需要修复编译器错误。与打开或文件无关。非常感谢,我自己也意识到了这一点,但感谢您加快了进程。
public class Main {
public static void main(String[] args) {
FileIOPas fileiopas = new FileIOPas();
Paslijst paslijst = new Paslijst();
paslijst.setPaslijst(fileiopas.openen("test.txt"));
}
}
public class FileIOPas {
public ArrayList<Pas> openen(String filenaam) {
try (FileInputStream fileInputStream = new FileInputStream(filenaam);
ObjectInputStream objectInputStream = new ObjectInputStream(
fileInputStream);) {
return (ArrayList<Pas>) objectInputStream.readObject();
} catch (Exception exception) {
exception.printStackTrace();
}
return null;
}
}
public class Paslijst implements Serializable {
private ArrayList<Pas> paslijst;
public ArrayList<Pas> getPaslijst() {
return paslijst;
}
public void setPaslijst(ArrayList<Pas> paslijst) {
this.paslijst = paslijst;
}
}