Добавление сериализованных объектов JavaJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Добавление сериализованных объектов Java

Сообщение Anonymous »

Мне нужна небольшая помощь в операциях ввода-вывода файлов Java. Я пытаюсь добавить сериализованный объект в свой файл, но к файлу добавляется только последний объект.
Я попробовал много предложений, но пока безуспешно.
Как мне этого добиться, помогите, пожалуйста?

Вот мой код:

Код: Выделить всё

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Scanner;

public class Working {

String FILENAME = "E:\\assignment\\userpass\\userpass.txt";

Scanner sc = new Scanner(System.in);
String sUser = null, sPass = null, sRole = null;

Signup signup = new Signup();

public void createUser(){

System.out.println(" Enter username: ");
sUser = sc.next();

System.out.println(" Enter password: ");
sPass = sc.next();

System.out.println(" Enter Role: ");
sRole = sc.next();

Working obj = new Working();

signup.setUsername(sUser);
signup.setPassword(sPass);
signup.setRole(sRole);

obj.serializeUser(signup);

}

public void serializeUser(Signup signup){

FileOutputStream fout = null;
ObjectOutputStream oout= null;

File file = new File(FILENAME);

try{

//  fout = new FileOutputStream(file);
//  fout = new FileOutputStream(file.getAbsoluteFile(), true);
fout = new FileOutputStream(file, true);
//  fout = new FileOutputStream(FILENAME);
oout = new ObjectOutputStream(fout);
oout.writeObject(signup);

System.out.println("User has been serialized");

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

} finally {

if(fout != null){
try{

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

if(oout != null){
try{

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

}

}

// for test purpose
public void showUsers(){
Working obj = new Working();
Signup add = obj.deserializeUser(FILENAME);

System.out.println(add);
}

// to show data
//test purpose

public Signup deserializeUser(String filename){

Signup userDetails = null;
File file = new File(FILENAME);

FileInputStream fin = null;
ObjectInputStream oin = null;

try{

fin = new FileInputStream(file);
oin = new ObjectInputStream(fin);

userDetails = (Signup) oin.readObject();

} catch(Exception ex){
ex.printStackTrace();
} finally{
if (fin != null) {
try {
fin.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (oin != null) {
try {
oin.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return userDetails;

}

}
Я уже проверил здесь:
1. http://www.enseignement.polytechnique.f ... g-boolean-
2. Добавление к ObjectOutputStream

Подробнее здесь: https://stackoverflow.com/questions/459 ... ed-objects
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»