StreamCorruptedException: invalid stream header: 79737200 when reading objects from a file












1















I create a client similarity, where clients register an account (an object is created) which is stored in a file.



Objects are written to the file as required, I override the writeStreamHeader() method. But when I try to read them all, their file throws an exception.



Write the objects to the file here.



 public static void saveAccaunt(LoginAndPass gamers) {
boolean b = true;
FileInputStream fis = null;
try{
fis = new FileInputStream("student.ser");
fis.close();
}
catch (FileNotFoundException e)
{
b = false;
} catch (IOException e) {
e.printStackTrace();
}

try {
FileOutputStream fileOutputStream = new FileOutputStream("student.ser",true);
ObjectOutputStream os = null;
if(b = true){
os = new AppendingObjectOutputStream(fileOutputStream);
System.out.println("Объект добавлен!");
}else {
os = new ObjectOutputStream(fileOutputStream);
System.out.println("Создан");
}
os.writeObject(gamers);
os.close();
fileOutputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}


public static void main(String args) {
try {
FileInputStream fileInputStream = new FileInputStream("student.ser");
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
test = new ArrayList<>();
while (true){
test.add(objectInputStream.readObject());
}

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
System.out.println(test.get(0));

}


Here is the error log for the exception thrown:




java.io.StreamCorruptedException: invalid stream header: 79737200

at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:866)

at java.io.ObjectInputStream.(ObjectInputStream.java:358)

at Registratsiya.AllGamers.main(AllGamers.java:48)

Exception in thread "main" java.lang.NullPointerException
at Registratsiya.AllGamers.main(AllGamers.java:61)











share|improve this question




















  • 5





    I think that the problem is this: if(b = true){. Note that you have mistakenly used = instead of ==. This means that you will be calling your AppendingObjectOutputStream every time, and that (presumably) means there will be no valid stream header.

    – Stephen C
    Feb 21 at 12:22











  • And note that if (b) is simpler, more efficient, and cannot possibly have this problem. Don't compare booleans to true or false. They already are one or the other.

    – user207421
    Feb 21 at 14:19
















1















I create a client similarity, where clients register an account (an object is created) which is stored in a file.



Objects are written to the file as required, I override the writeStreamHeader() method. But when I try to read them all, their file throws an exception.



Write the objects to the file here.



 public static void saveAccaunt(LoginAndPass gamers) {
boolean b = true;
FileInputStream fis = null;
try{
fis = new FileInputStream("student.ser");
fis.close();
}
catch (FileNotFoundException e)
{
b = false;
} catch (IOException e) {
e.printStackTrace();
}

try {
FileOutputStream fileOutputStream = new FileOutputStream("student.ser",true);
ObjectOutputStream os = null;
if(b = true){
os = new AppendingObjectOutputStream(fileOutputStream);
System.out.println("Объект добавлен!");
}else {
os = new ObjectOutputStream(fileOutputStream);
System.out.println("Создан");
}
os.writeObject(gamers);
os.close();
fileOutputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}


public static void main(String args) {
try {
FileInputStream fileInputStream = new FileInputStream("student.ser");
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
test = new ArrayList<>();
while (true){
test.add(objectInputStream.readObject());
}

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
System.out.println(test.get(0));

}


Here is the error log for the exception thrown:




java.io.StreamCorruptedException: invalid stream header: 79737200

at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:866)

at java.io.ObjectInputStream.(ObjectInputStream.java:358)

at Registratsiya.AllGamers.main(AllGamers.java:48)

Exception in thread "main" java.lang.NullPointerException
at Registratsiya.AllGamers.main(AllGamers.java:61)











share|improve this question




















  • 5





    I think that the problem is this: if(b = true){. Note that you have mistakenly used = instead of ==. This means that you will be calling your AppendingObjectOutputStream every time, and that (presumably) means there will be no valid stream header.

    – Stephen C
    Feb 21 at 12:22











  • And note that if (b) is simpler, more efficient, and cannot possibly have this problem. Don't compare booleans to true or false. They already are one or the other.

    – user207421
    Feb 21 at 14:19














1












1








1








I create a client similarity, where clients register an account (an object is created) which is stored in a file.



Objects are written to the file as required, I override the writeStreamHeader() method. But when I try to read them all, their file throws an exception.



Write the objects to the file here.



 public static void saveAccaunt(LoginAndPass gamers) {
boolean b = true;
FileInputStream fis = null;
try{
fis = new FileInputStream("student.ser");
fis.close();
}
catch (FileNotFoundException e)
{
b = false;
} catch (IOException e) {
e.printStackTrace();
}

try {
FileOutputStream fileOutputStream = new FileOutputStream("student.ser",true);
ObjectOutputStream os = null;
if(b = true){
os = new AppendingObjectOutputStream(fileOutputStream);
System.out.println("Объект добавлен!");
}else {
os = new ObjectOutputStream(fileOutputStream);
System.out.println("Создан");
}
os.writeObject(gamers);
os.close();
fileOutputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}


public static void main(String args) {
try {
FileInputStream fileInputStream = new FileInputStream("student.ser");
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
test = new ArrayList<>();
while (true){
test.add(objectInputStream.readObject());
}

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
System.out.println(test.get(0));

}


Here is the error log for the exception thrown:




java.io.StreamCorruptedException: invalid stream header: 79737200

at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:866)

at java.io.ObjectInputStream.(ObjectInputStream.java:358)

at Registratsiya.AllGamers.main(AllGamers.java:48)

Exception in thread "main" java.lang.NullPointerException
at Registratsiya.AllGamers.main(AllGamers.java:61)











share|improve this question
















I create a client similarity, where clients register an account (an object is created) which is stored in a file.



Objects are written to the file as required, I override the writeStreamHeader() method. But when I try to read them all, their file throws an exception.



Write the objects to the file here.



 public static void saveAccaunt(LoginAndPass gamers) {
boolean b = true;
FileInputStream fis = null;
try{
fis = new FileInputStream("student.ser");
fis.close();
}
catch (FileNotFoundException e)
{
b = false;
} catch (IOException e) {
e.printStackTrace();
}

try {
FileOutputStream fileOutputStream = new FileOutputStream("student.ser",true);
ObjectOutputStream os = null;
if(b = true){
os = new AppendingObjectOutputStream(fileOutputStream);
System.out.println("Объект добавлен!");
}else {
os = new ObjectOutputStream(fileOutputStream);
System.out.println("Создан");
}
os.writeObject(gamers);
os.close();
fileOutputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}


public static void main(String args) {
try {
FileInputStream fileInputStream = new FileInputStream("student.ser");
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
test = new ArrayList<>();
while (true){
test.add(objectInputStream.readObject());
}

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
System.out.println(test.get(0));

}


Here is the error log for the exception thrown:




java.io.StreamCorruptedException: invalid stream header: 79737200

at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:866)

at java.io.ObjectInputStream.(ObjectInputStream.java:358)

at Registratsiya.AllGamers.main(AllGamers.java:48)

Exception in thread "main" java.lang.NullPointerException
at Registratsiya.AllGamers.main(AllGamers.java:61)








java objectinputstream objectoutputstream






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Feb 21 at 13:09









Kebab Programmer

1,02511328




1,02511328










asked Jan 2 at 11:10









WolF RamWolF Ram

62




62








  • 5





    I think that the problem is this: if(b = true){. Note that you have mistakenly used = instead of ==. This means that you will be calling your AppendingObjectOutputStream every time, and that (presumably) means there will be no valid stream header.

    – Stephen C
    Feb 21 at 12:22











  • And note that if (b) is simpler, more efficient, and cannot possibly have this problem. Don't compare booleans to true or false. They already are one or the other.

    – user207421
    Feb 21 at 14:19














  • 5





    I think that the problem is this: if(b = true){. Note that you have mistakenly used = instead of ==. This means that you will be calling your AppendingObjectOutputStream every time, and that (presumably) means there will be no valid stream header.

    – Stephen C
    Feb 21 at 12:22











  • And note that if (b) is simpler, more efficient, and cannot possibly have this problem. Don't compare booleans to true or false. They already are one or the other.

    – user207421
    Feb 21 at 14:19








5




5





I think that the problem is this: if(b = true){. Note that you have mistakenly used = instead of ==. This means that you will be calling your AppendingObjectOutputStream every time, and that (presumably) means there will be no valid stream header.

– Stephen C
Feb 21 at 12:22





I think that the problem is this: if(b = true){. Note that you have mistakenly used = instead of ==. This means that you will be calling your AppendingObjectOutputStream every time, and that (presumably) means there will be no valid stream header.

– Stephen C
Feb 21 at 12:22













And note that if (b) is simpler, more efficient, and cannot possibly have this problem. Don't compare booleans to true or false. They already are one or the other.

– user207421
Feb 21 at 14:19





And note that if (b) is simpler, more efficient, and cannot possibly have this problem. Don't compare booleans to true or false. They already are one or the other.

– user207421
Feb 21 at 14:19












0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54005259%2fstreamcorruptedexception-invalid-stream-header-79737200-when-reading-objects-f%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54005259%2fstreamcorruptedexception-invalid-stream-header-79737200-when-reading-objects-f%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

MongoDB - Not Authorized To Execute Command

in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith

Npm cannot find a required file even through it is in the searched directory