Файл JAXB перезаписывает старый файл при передаче из среды javafx. как это решить? - PullRequest
1 голос
/ 18 марта 2020

Я пытаюсь поместить учетные данные в файл XML во время выполнения, но XML заменяет новое значение, в то же время, как решить эту проблему?

Мне нужно добавить новые учетные данные в существующий файл и извлеките его в соответствии с именем, которое было дано

заранее спасибо

Немного нового для сообщества! не беспокойтесь, если есть какие-либо соглашения об ошибках

loginExample. java

public class LoginExample extends Application {
    CredentialsBean credentials ;
    @Override
    public void start(Stage primaryStage) throws Exception {
    Button submit =new Button("Submit");
    Button convert = new Button("Convert");
    GridPane root = new GridPane();
    Label showuname =  new Label();
    Label showupwd = new Label();

    Text name = new Text("Name");
    root.add(name,0,0);
    TextField uname = new TextField();
    root.add(uname, 1, 0);

    Text password = new Text("Password");
    root.add(password,0,1);
    PasswordField upwd = new PasswordField();
    root.add(upwd, 1,1);
    root.add(submit, 1, 2);
    root.add(convert, 1, 3);

    root.add(showuname, 2, 6);
    root.add(showupwd, 2, 7);


    Scene sc = new Scene(root,400,400);
    primaryStage.setScene(sc);
    primaryStage.show();



    submit.setOnAction(new EventHandler<ActionEvent>() {

        @Override
        public void handle(ActionEvent event) {
        String name=uname.getText();
        try {
            String pwd= Base64.getEncoder().encodeToString(upwd.getText().getBytes("utf-8"));          
            credentials= new CredentialsBean(name,pwd);
            jaxbObjectToXML(credentials);

        } catch (IOException e) {
            e.printStackTrace();
        }
        }

        private void jaxbObjectToXML(CredentialsBean credentials) throws FileNotFoundException {
         try
                {
                    //Create JAXB Context
                    JAXBContext jaxbContext = JAXBContext.newInstance(CredentialsBean.class);

                    //Create Marshaller
                    Marshaller jaxbMarshaller = jaxbContext.createMarshaller();

                    //Required formatting??
                    jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);

                    File file2 = new File("C:/Users/User/Desktop/encoder.xml");
                    jaxbMarshaller.marshal(credentials, file2);


                } catch (JAXBException e) {
                    e.printStackTrace();
                }
        }
    });
}

    public static void main(String args[]) 
    { 

        launch(args); 
    } 
}

CredentialsBean. java

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class CredentialsBean {

    private String name;
    private String password;
    public CredentialsBean() {
    }
    public CredentialsBean(String name, String password) {
    this.name = name;
    this.password = password;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    @Override
    public String toString() {
    return "CredentialsBean [name=" + name + ", password=" + password + "]";
    }


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...