首页 > 解决方案 > 将信息从文件输入列表

问题描述

我正在尝试使用文件将数据输入库模拟项目。

    public void DataRecorder(int modoFile, ArrayList<?> genericList){
        try{
            File file = new File("");
            if(modoFile == 0){
                ArrayList<Person> person = new ArrayList<>();
                person = (ArrayList<Person>) genericList;
                file = new File("PeopleData.txt");              
                if(file.exists()){
                    //System.out.println("Arquivo ja existente");
                }
                else{
                    file.createNewFile();
                }            
                FileWriter writer = new FileWriter(file);
                BufferedWriter bufferWriter = new BufferedWriter(writer);
                for(int i = 0; i<genericList.size(); i++){
                    if(person.get(i) instanceof Grad_student){
                        line = "Grad_student;";
                        Grad_student grad = new Grad_student();
                        grad = (Grad_student) person.get(i);
                        line+=grad.getPersonName()+";"+grad.getEmail()+";"+grad.getPassword()+";"+grad.getRa()+"\n;";
                        for(int j = 0; j<grad.getBookList().size(); j++){
                            line+=grad.getBookList().get(j).getTitle()+";";
                            line+=grad.getBookList().get(j).getPublisher().getPublisherName()+";";
                        }
                        bufferWriter.write(line);
                    }
                    else if(person.get(i) instanceof Postgrad_student){
                        line = "Postgrad_student;";
                        Postgrad_student pgrad = new Postgrad_student();
                        pgrad = (Postgrad_student) person.get(i);
                        line+=pgrad.getPersonName()+";"+pgrad.getEmail()+";"+pgrad.getPassword()+";"+pgrad.getCoo()+"\n;";
                        for(int j = 0; j<pgrad.getBookList().size(); j++){
                            line+=pgrad.getBookList().get(j).getTitle()+";";
                            line+=pgrad.getBookList().get(j).getPublisher().getPublisherName()+";";
                        }
                        bufferWriter.write(line);
                    }
                    else{
                        line = "Employee;";
                        Employee emp = new Employee();
                        emp = (Employee) person.get(i);
                        line+=emp.getPersonName()+";"+emp.getEmail()+";"+emp.getPassword()+"\n;";
                        bufferWriter.write(line);
                    }
                }
                bufferWriter.close();
                writer.close();
            }


        }catch(IOException e){
            System.out.println("Erro: "+e.toString());
         }
    }

我们有员工,grad_students 和 postgrad_students。研究生和研究生有自己的书单(他们从图书馆得到的书),而员工没有(可以添加和删除书籍)。我正在尝试读取仅获取他们的电子邮件和密码的内容,以便他们可以登录。但是我如何忽略额外的信息?此外,当他们登录时,他们可以访问不同的界面,例如,当员工登录时,他有自己的界面。他们应该在登录时使用哪个接口来定义他们应该有权访问的接口instanceof。我如何将他们的类型归因于登录目的?

        File file = new File("PeopleData.txt");
            try {
                if(file.exists()){
                    FileReader reader = new FileReader("PeopleData.txt");
                    BufferedReader bufferReader = new BufferedReader(reader);
                    while(true){
                        line = bufferReader.readLine();
                         if(line == null){
                             break;
                         }
                    }
                }    
            }catch (FileNotFoundException ex) {
                Logger.getLogger(Form_Main.class.getName()).log(Level.SEVERE, null, ex);
            }

这就是我开始为读者构建的东西。提前致谢!

标签: java

解决方案


推荐阅读