Jeewantha Lahiru:
J'ai créé d' un simple programme de déclaration de la Banque en java. Il y a une classe appelée FinancialManager et elle le relevé bancaire de contrôle. FinancialManager classe est ci - dessous.
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.Vector;
public class FinancialManager implements Serializable{
private double balance1;
private Vector<String> statement1;
public FinancialManager(){
balance1=0;
statement1 = new Vector<String>();
}
public void deposit(double value){
balance1 = balance1+value;
String st = "Deposit "+String.valueOf(value);
statement1.add(st);
}
public void withdraw(double value){
if(value<balance1){
balance1 = balance1 - value;
String st = "Withdraw "+String.valueOf(value);
statement1.add(st);
}else{
String st = "Withdraw 0.0";
statement1.add(st);
}
}
public String balance(){
return String.valueOf(balance1);
}
public void statement(){
String[] array = statement1.toArray(new String[statement1.size()]);
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}
}
}
La classe principale est inférieure.
public class Main {
public static void main(String[] args) {
FinancialManager fm = new FinancialManager();
fm.deposit(25.00);
fm.withdraw(12.00);
fm.deposit(10.00);
fm.deposit(5.00);
fm.withdraw(8.00);
System.out.println("The current balance is "+fm.balance());
fm.statement();
}
}
Je dois ajouter une méthode appelée sauvegarde et cette méthode devrait être en mesure de sérialiser l'objet. A titre d'exemple lorsque j'utilise cette méthode comme celui - ci dans la méthode principale,
fm.save("test.ser");
Il devrait être en mesure de sérialiser l'objet à la « test.ser » file.How puis - je faire?
Joni:
La chose facile à faire est de créer un ObjectOutputStream
qui écrit dans un fichier. Par exemple:
public void save(String fileName) throws IOException {
Path filePath = Path.of(fileName);
try (ObjectOutputStream objectOutputStream = new ObjectOutputStream(Files.newOutputStream(filePath))) {
// write "this" - the current object - to the file
objectOutputStream.writeObject(this);
}
}
Pour lire le dans, l'utilisation ObjectInputStream:
public static FinancialManager open(String fileName) throws IOException, ClassNotFoundException {
Path filePath = Path.of(fileName);
try (ObjectInputStream objectInputStream = new ObjectInputStream(Files.newInputStream(filePath))) {
return (FinancialManager) objectInputStream.readObject();
}
}